Olá,
use o código em regex para CNPJ e CPF:
Atenção, não valida o CPF e CNPJ apenas a quantidade digitada.
$('#cpfcnpj').blur(function(){ var cpfcnpj = $('#cpfcnpj').val(); if(cpfcnpj.match(/^([0-9]{2}[\.]?[0-9]{3}[\.]?[0-9]{3}[\/]?[0-9]{4}[-]?[0-9]{2})|([0-9]{3}[\.]?[0-9]{3}[\.]?[0-9]{3}[-]?[0-9]{2})$/)){ alert('true'); }else{ alert('false'); } });
Explicação:
1 – [0-9]{2}
Faixa de caracteres: 0 a 9, quantidade: 2 caracteres.
2 – [0-9]{3}
Faixa de caracteres: 0 a 9, quantidade: 3 caracteres.
3 – [0-9]{4}
Faixa de caracteres: 0 a 9, quantidade: 4 caracteres.
4 – [\.]?
Um ponto, opcional. Foi usado \ no ponto, pois ele sozinho é caractere especial.
5 – [-]?
Um traço, opcional.
6 – [\/]?
Uma barra, opcional. Tambem “escapada” com \.
7 – (cnpj)|(cpf)
Se um dos grupos validar, a expressão é válida.
Segue funcionando no JSFIddle