@technobuddha/library
Version:
A large library of useful functions
62 lines (61 loc) • 3.05 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.cleanStart = exports.cleanEnd = exports.clean = void 0;
var isString_1 = __importDefault(require("lodash/isString"));
var isRegExp_1 = __importDefault(require("lodash/isRegExp"));
var escapeRegExp_1 = __importDefault(require("lodash/escapeRegExp"));
var constants_1 = require("../constants");
var splitChars_1 = __importDefault(require("../splitChars"));
var trimEquivalent = /[\s\uFEFF\xA0]/u;
/**
* Remove all occurrences of characters from the beginning and end of the string
*
* @param input The string
* @param characters The characters(s) to remove
*/
function clean(input, characters) {
if (characters === void 0) { characters = trimEquivalent; }
var re = (isString_1.default(characters)
? splitChars_1.default(characters).map(function (ch) { return escapeRegExp_1.default(ch); }).join('|')
: isRegExp_1.default(characters)
? characters.source
: characters.map(function (c) { return (isRegExp_1.default(c) ? c.source : splitChars_1.default(c).map(function (ch) { return escapeRegExp_1.default(ch); }).join('|')); }).join('|'));
return input.replace(new RegExp("^(" + re + ")+|(" + re + ")+$", 'gu'), constants_1.empty);
}
exports.clean = clean;
/**
* Remove all occurrences of characters from the end of the string
*
* @param input The string
* @param characters he characters(s) to remove
*/
function cleanEnd(input, characters) {
if (characters === void 0) { characters = trimEquivalent; }
var re = (isString_1.default(characters)
? splitChars_1.default(characters).map(function (ch) { return escapeRegExp_1.default(ch); }).join('|')
: isRegExp_1.default(characters)
? characters.source
: characters.map(function (c) { return (isRegExp_1.default(c) ? c.source : splitChars_1.default(c).map(function (ch) { return escapeRegExp_1.default(ch); }).join('|')); }).join('|'));
return input.replace(new RegExp("(" + re + ")+$", 'u'), constants_1.empty);
}
exports.cleanEnd = cleanEnd;
/**
* Remove all occurrences of characters from the start of the string
*
* @param input The string
* @param characters The characters(s) to remove
*/
function cleanStart(input, characters) {
if (characters === void 0) { characters = trimEquivalent; }
var re = (isString_1.default(characters)
? splitChars_1.default(characters).map(function (ch) { return escapeRegExp_1.default(ch); }).join('|')
: isRegExp_1.default(characters)
? characters.source
: characters.map(function (c) { return (isRegExp_1.default(c) ? c.source : splitChars_1.default(c).map(function (ch) { return escapeRegExp_1.default(ch); }).join('|')); }).join('|'));
return input.replace(new RegExp("^(" + re + ")+", 'u'), constants_1.empty);
}
exports.cleanStart = cleanStart;
exports.default = clean;