lhmask/src/lhmask.ts
2024-06-17 20:11:08 -03:00

149 lines
3.8 KiB
TypeScript

// Entrada: 12345000 Saída: 12.345-000
export function formatarCep(txt: string) {
const soNumeros = `${txt}`.replace(/[^\d]/g, "");
if (!soNumeros) return soNumeros;
let cep = "";
cep += soNumeros.slice(0, 2);
if (soNumeros.length > 2) cep += "." + soNumeros.slice(2, 5);
if (soNumeros.length > 5) cep += "-" + soNumeros.slice(5, 8);
return cep;
}
// Entrada: 12345678000100 Saida: 12.345.678/0001-00
export function formatarCnpj(txt: string) {
const soNumeros = `${txt}`.replace(/[^\d]/g, "");
if (!soNumeros) return soNumeros;
let cnpj = "";
cnpj += soNumeros.slice(0, 2);
if (soNumeros.length > 2) cnpj += "." + soNumeros.slice(2, 5);
if (soNumeros.length > 5) cnpj += "." + soNumeros.slice(5, 8);
if (soNumeros.length > 8) cnpj += "/" + soNumeros.slice(8, 12);
if (soNumeros.length > 12) cnpj += "-" + soNumeros.slice(12, 14);
return cnpj;
}
// Entrada: 12345678900 Saída: 123.456.789-00
export function formatarCpf(txt: string) {
const soNumeros = `${txt}`.replace(/[^\d]/g, "");
if (!soNumeros) return soNumeros;
let cpf = "";
cpf += soNumeros.slice(0, 3);
if (soNumeros.length > 3) cpf += "." + soNumeros.slice(3, 6);
if (soNumeros.length > 6) cpf += "." + soNumeros.slice(6, 9);
if (soNumeros.length > 9) cpf += "-" + soNumeros.slice(9, 11);
return cpf;
}
export function formatarCpfCnpj(txt: string) {
const soNumeros = `${txt}`.replace(/[^\d]/g, "");
if (soNumeros.length <= 11) {
return formatarCpf(txt);
} else {
return formatarCnpj(txt);
}
}
// Entrada: 12345 Saída: 1234-5
export function formatarContaBancaria(txt: string) {
const soNumeros = `${txt}`.replace(/[^\dxX]/g, "");
if (!soNumeros) return soNumeros;
let conta = "";
if (soNumeros.length > 1) {
conta = soNumeros.slice(0, soNumeros.length - 1) + "-" + soNumeros[soNumeros.length - 1];
} else {
conta = soNumeros;
}
return conta;
}
export function formatarTelefone(txt: string) {
const soNumeros = `${txt}`.replace(/[^\d]/g, "");
if (!soNumeros) return soNumeros;
let tel = "";
if (soNumeros.length === 1) {
if (+soNumeros[0] === 0) {
tel = soNumeros;
} else {
tel = "(" + soNumeros;
}
} else if (soNumeros.length === 2) {
if (+soNumeros[0] === 0 && +soNumeros[1] === 8) {
tel = soNumeros;
} else {
tel = "(" + soNumeros;
}
} else if (soNumeros.length > 2) {
if (+soNumeros[2] === 9) {
// CELULAR
tel = "(" + soNumeros.slice(0, 2) + ")";
if (soNumeros.length > 2) tel += soNumeros.slice(2, 7);
if (soNumeros.length > 7) tel += "-" + soNumeros.slice(7, 11);
} else {
// TELEFONE FIXO OU 0800
if (+soNumeros[0] === 0 && +soNumeros[1] === 8) {
// 0800
tel = soNumeros.slice(0, 4);
if (soNumeros.length > 4) tel += "-" + soNumeros.slice(4, 7);
if (soNumeros.length > 7) tel += "-" + soNumeros.slice(7, 11);
} else {
tel = "(" + soNumeros.slice(0, 2) + ")";
if (soNumeros.length > 2) tel += soNumeros.slice(2, 6);
if (soNumeros.length > 6) tel += "-" + soNumeros.slice(6, 10);
}
}
}
return tel;
}
export function formatarValor(valor: string, formato: string) {
switch (formato) {
case "cep":
return formatarCep(valor);
case "cpf":
return formatarCpf(valor);
case "cnpj":
return formatarCnpj(valor);
case "cpfcnpj":
return formatarCpfCnpj(valor);
case "contabancaria":
return formatarContaBancaria(valor);
case "telefone":
return formatarTelefone(valor);
case "int":
return parseInt(valor);
case "float":
return parseFloat(valor);
default:
return valor;
}
}
export default {
formatarCep,
formatarCnpj,
formatarCpf,
formatarCpfCnpj,
formatarContaBancaria,
formatarTelefone,
formatarValor,
};