UNPKG

extract-alphanumeric

Version:

simple tool to extract alphanumeric characters from a string

25 lines (24 loc) 956 B
"use strict"; 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;