UNPKG

locutus

Version:

Locutus other languages' standard libraries to JavaScript for fun and educational purposes

24 lines (23 loc) 1.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.trimmingCharacters = trimmingCharacters; const escapeForCharacterClass = (value) => value.replace(/[\\[\]-]/g, '\\$&'); function trimmingCharacters(str, characters = ' \n\r\t') { // discuss at: https://locutus.io/swift/String/trimmingCharacters/ // original by: Kevin van Zonneveld (https://kvz.io) // note 1: Trims leading and trailing characters found in the provided character set, similar to Swift trimmingCharacters(in:). // example 1: trimmingCharacters(' hello \n') // returns 1: 'hello' // example 2: trimmingCharacters('--swift--', '-') // returns 2: 'swift' // example 3: trimmingCharacters('xyxhelloxy', 'xy') // returns 3: 'hello' const source = String(str); const set = String(characters); if (set === '') { return source; } const escapedSet = escapeForCharacterClass(set); const pattern = new RegExp(`^[${escapedSet}]+|[${escapedSet}]+$`, 'g'); return source.replace(pattern, ''); }