30 lines
817 B
TypeScript
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");
|
|
};
|