@technobuddha/library
Version:
A large library of useful functions
28 lines • 2.38 kB
JavaScript
import { isRegExp } from "./is-reg-exp.js";
import { isString } from "./is-string.js";
import { trimEquivalent } from "./regexp.js";
import { splitChars } from "./split-chars.js";
import { empty } from "./unicode.js";
/**
* Remove all occurrences of characters from the end of the string
* @param input - The string
* @param characters - the characters(s) to remove
* @group String
* @category Operations
*/
export function cleanEnd(input, characters = trimEquivalent) {
const re = isString(characters) ?
splitChars(characters)
.map((ch) => RegExp.escape(ch))
.join('|')
: isRegExp(characters) ? characters.source
: characters
.map((c) => isRegExp(c) ?
c.source
: splitChars(c)
.map((ch) => RegExp.escape(ch))
.join('|'))
.join('|');
return input.replace(new RegExp(`(${re})+$`, 'u'), empty);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW4tZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsZWFuLWVuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFckM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsS0FBYSxFQUNiLGFBQW9ELGNBQWM7SUFFbEUsTUFBTSxFQUFFLEdBQ04sUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDcEIsVUFBVSxDQUFDLFVBQVUsQ0FBQzthQUNuQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNkLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNO1lBQzFDLENBQUMsQ0FBQyxVQUFVO2lCQUNQLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ1QsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxDQUFDLE1BQU07Z0JBQ1YsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7cUJBQ1YsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQ2Y7aUJBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWpCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzVELENBQUMifQ==