function pregQuote(str, delimiter = '') { return (str + '').replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + (delimiter || '') + '-]', 'g'), '\\$&'); } function replaceRegexDiacritics(regexString) { if (!regexString) return ''; const diacriticReplacements = { 'a': '[aàáâãäåāą]', 'A': '[AÀÁÂÃÄÅĀĄ]', 'c': '[cçćč]', 'C': '[CÇĆČ]', 'd': '[dđď]', 'D': '[DĐĎ]', 'e': '[eèéêëěēę]', 'E': '[EÈÉÊËĚĒĘ]', 'i': '[iìíîïī]', 'I': '[IÌÍÎÏĪ]', 'l': '[lł]', 'L': '[LŁ]', 'n': '[nñňń]', 'N': '[NÑŇŃ]', 'o': '[oòóôõöøō]', 'O': '[OÒÓÔÕÖØŌ]', 'r': '[rř]', 'R': '[RŘ]', 's': '[sšś]', 'S': '[SŠŚ]', 't': '[tť]', 'T': '[TŤ]', 'u': '[uùúûüůū]', 'U': '[UÙÚÛÜŮŪ]', 'y': '[yÿý]', 'Y': '[YŸÝ]', 'z': '[zžżź]', 'Z': '[ZŽŻŹ]', }; let output = ''; for (let i = 0; i < regexString.length; i++) { let c = regexString[i]; const r = diacriticReplacements[c]; if (r) { output += r; } else { output += c; } } return output; } if (typeof module !== 'undefined') { module.exports = { pregQuote, replaceRegexDiacritics }; }