Boa tarde!
Estou desenvolvendo um chatbot, mas preciso que quando o usuário insira o CNPJ desformatado, ele seja enviado no formato padrão do cnpj.
O problema é que não faço ideia de como e onde inserir isso no código.
Se puderem me dar uma ajuda, ficarei muito grato.
Segue abaixo meu código na parte do CNPJ
Lembrando que: Esse código é uma API. A ideia é essa api, no momento de mandar o cnpj, ser ativada para mascarar o mesmo.
const validatecnpj = cnpj => {
console.log(“v1.0.0”)
cnpj = cnpj.replace(/[^\d]+/g, ‘’);
if (cnpj == ‘’) return false;
if (cnpj.length != 14)
return false;
if (cnpj == “00000000000000” ||
cnpj == "11111111111111" ||
cnpj == "22222222222222" ||
cnpj == "33333333333333" ||
cnpj == "44444444444444" ||
cnpj == "55555555555555" ||
cnpj == "66666666666666" ||
cnpj == "77777777777777" ||
cnpj == "88888888888888" ||
cnpj == "99999999999999")
return false;
let tamanho = cnpj.length - 2
let numeros = cnpj.substring(0, tamanho);
let digitos = cnpj.substring(tamanho);
let soma = 0;
let pos = tamanho - 7;
for (let i = tamanho; i >= 1; i–) {
soma += numeros.charAt(tamanho - i) * pos--;
if (pos < 2)
pos = 9;
}
let resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
if (resultado != digitos.charAt(0)) return false;
tamanho = tamanho + 1;
numeros = cnpj.substring(0, tamanho);
soma = 0;
pos = tamanho - 7;
for (let i = tamanho; i >= 1; i–) {
soma += numeros.charAt(tamanho - i) * pos--;
if (pos < 2)
pos = 9;
}
resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
if (resultado != digitos.charAt(1))
return false;
return true;
}
async function check_valid(params) {
return new Promise( async (resolve, reject) => {
try {
let res = false
switch (params.type) {
case 'cnpj':
res = validatecnpj(params.value)
break;
default:
res = {
status: 500,
results: 'Api Error'
}
break;
}
console.log(res)
resolve({status:200, result: res})
} catch (error) {
console.log(error);
let res = {
status: 500,
results: 'Api Error'
}
resolve(res)
}
})
};
exports.check_valid = check_valid;