mongo-base-crud
Version:
Class to handler access and handler database
46 lines • 1.7 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringToRegex = exports.removerAcentos = void 0;
function removerAcentos(str) {
return str
.normalize("NFD")
.replace(/[\u0300-\u036f]/g, "");
}
exports.removerAcentos = removerAcentos;
function stringToRegex(value) {
if (value instanceof RegExp) {
return value;
}
value = removerAcentos(value).toLocaleLowerCase();
const escapeRegExp = (str) => str
.replace(/[*+?^${}()|[\]\\]/g, "\\$&")
.replace(".", ".?")
.replace("-", "");
const replaceLetters = (str) => str
.replace(/a/gi, "[aáãâàä]+")
.replace(/e/gi, "[eéêèë]+")
.replace(/i/gi, "[iíîìï]+")
.replace(/o/gi, "[oóôõòö]+")
.replace(/u/gi, "[uúûùü]+")
.replace(/ +/, ".+?");
const replaceSpecificLetters = (str) => str
.replace(/ç/gi, "[cçs]+")
.replace(/ck/gi, "[ck]+")
.replace(/f/gi, "(f|ph)+")
.replace(/cs/gi, "(x|cs)+");
const replaceNumbers = (str) => str
.replace(/zero/gi, "(zero|0)")
.replace(/um/gi, "(um|1)")
.replace(/dois/gi, "(dois|2)")
.replace(/três/gi, "(três|3)")
.replace(/quatro/gi, "(quatro|4)")
.replace(/cinco/gi, "(cinco|5)")
.replace(/seis/gi, "(seis|6)")
.replace(/sete/gi, "(sete|7)")
.replace(/oito/gi, "(oito|8)")
.replace(/nove/gi, "(nove|9)");
const regexStr = `.*${replaceNumbers(replaceSpecificLetters(replaceLetters(escapeRegExp(value))))}.*`;
return new RegExp(regexStr, "i");
}
exports.stringToRegex = stringToRegex;
//# sourceMappingURL=prepare.js.map
;