function formatCnpjCpf ($ value )
{
$ CPF_LENGTH = 11 ;
$ cnpj_cpf = preg_replace ("/\D/ " , '' , $ value );
if (strlen ($ cnpj_cpf ) === $ CPF_LENGTH ) {
return preg_replace ("/(\d{3})(\d{3})(\d{3})(\d{2})/ " , "\$1. \$2. \$3- \$4 " , $ cnpj_cpf );
}
return preg_replace ("/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/ " , "\$1. \$2. \$3/ \$4- \$5 " , $ cnpj_cpf );
}
function formatCnpjCpf ( value ) {
const CPF_LENGTH = 11 ;
const cnpjCpf = value . replace ( / \D/ g, '' ) ;
if ( cnpjCpf . length === CPF_LENGTH ) {
return cnpjCpf . replace ( / (\d{3})(\d{3})(\d{3})(\d{2})/ g, "\$1.\$2.\$3-\$4" ) ;
}
return cnpjCpf . replace ( / (\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/ g, "\$1.\$2.\$3/\$4-\$5" ) ;
}
Oracle PL/SQL (by @claudioacioli)
create function formatCnpjCpf (value varchar2 ) return varchar2
is
cnpj_cpf varchar2 (14 ) := regexp_replace(value, ' (\D )' , ' ' );
begin
if length(cnpj_cpf) = 11 then
return regexp_replace(cnpj_cpf, ' (\d {3})(\d {3})(\d {3})(\d {2})' ,' \1 .\2 .\3 -\4 ' );
end if;
return regexp_replace(lpad(cnpj_cpf, 14 , ' 0' ),' (\d {2})(\d {3})(\d {3})(\d {4})(\d {2})' ,' \1 .\2 .\3 /\4 -\5 ' );
end;