locutus
Version:
Locutus other languages' standard libraries to JavaScript for fun and educational purposes
24 lines (23 loc) • 1.07 kB
JavaScript
;
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, '');
}