UNPKG

@technobuddha/library

Version:
62 lines (61 loc) 3.05 kB
"use strict"; 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;