extract-alphanumeric
Version:
simple tool to extract alphanumeric characters from a string
25 lines (24 loc) • 956 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.extract = void 0;
const escapeToRegex = (str) => {
// Escape any reserved symbols/characters e.g * -> \*
return str.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&").replace(/\s+/g, "\\s+");
};
const createRegex = (include, exclude) => {
const includeRegEx = escapeToRegex(include);
const excludeRegEx = escapeToRegex(exclude);
const whitelistPattern = `[^a-zA-Z0-9${includeRegEx}]`;
const blacklistPattern = exclude ? `[${excludeRegEx}]` : "(?!)";
const whitelist = new RegExp(whitelistPattern, "gu");
const blacklist = new RegExp(blacklistPattern, "gu");
return {
whitelist,
blacklist,
};
};
const extract = (input, { include = "", exclude = "", } = {}) => {
const { whitelist, blacklist } = createRegex(include, exclude);
return input.replace(whitelist, "").replace(blacklist, "");
};
exports.extract = extract;