photum/frontend/utils/masks.ts
2026-02-07 00:02:47 -03:00

30 lines
817 B
TypeScript

export const formatCPFCNPJ = (value: string) => {
const clean = value.replace(/\D/g, "");
if (clean.length <= 11) {
// CPF
return clean
.replace(/(\d{3})(\d)/, "$1.$2")
.replace(/(\d{3})(\d)/, "$1.$2")
.replace(/(\d{3})(\d{1,2})/, "$1-$2")
.replace(/(-\d{2})\d+?$/, "$1");
} else {
// CNPJ
return clean
.replace(/^(\d{2})(\d)/, "$1.$2")
.replace(/^(\d{2})\.(\d{3})(\d)/, "$1.$2.$3")
.replace(/\.(\d{3})(\d)/, ".$1/$2")
.replace(/(\d{4})(\d)/, "$1-$2")
.replace(/(-\d{2})\d+?$/, "$1");
}
};
export const formatPhone = (value: string) => {
const clean = value.replace(/\D/g, "");
// (11) 99999-9999
return clean
.replace(/^(\d{2})(\d)/, "($1) $2")
.replace(/(\d{5})(\d)/, "$1-$2")
.replace(/(-\d{4})\d+?$/, "$1");
};