Last active
November 9, 2017 13:29
-
-
Save TiagoFuelber/3ef388d4c184ebea1a21f60ae8afcc80 to your computer and use it in GitHub Desktop.
Máscara para CNPJ e CPF no mesmo input
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var input = document.querySelector('#inputCpfCnpj'); | |
input.addEventListener('input', function(){ | |
mascaraMutuario(this, cpfCnpj); | |
}); | |
input.addEventListener('blur', function(){ | |
clearTimeout(); | |
}); | |
function mascaraMutuario(o,f){ | |
v_obj=o | |
v_fun=f | |
setTimeout(function(){ | |
v_obj.value=v_fun(v_obj.value) | |
},1) | |
} | |
function cpfCnpj(v){ | |
//Remove tudo o que não é dígito | |
v=v.replace(/\D/g,"") | |
if (v.length <= 11) { //CPF | |
//Coloca um ponto entre o terceiro e o quarto dígitos | |
v=v.replace(/(\d{3})(\d)/,"$1.$2") | |
//Coloca um ponto entre o terceiro e o quarto dígitos | |
//de novo (para o segundo bloco de números) | |
v=v.replace(/(\d{3})(\d)/,"$1.$2") | |
//Coloca um hÃfen entre o terceiro e o quarto dígitos | |
v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") | |
} else { //CNPJ | |
//Coloca ponto entre o segundo e o terceiro dígitos | |
v=v.replace(/^(\d{2})(\d)/,"$1.$2") | |
//Coloca ponto entre o quinto e o sexto dígitos | |
v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") | |
//Coloca uma barra entre o oitavo e o nono dígitos | |
v=v.replace(/\.(\d{3})(\d)/,".$1/$2") | |
//Coloca um hÃfen depois do bloco de quatro dígitos | |
v=v.replace(/(\d{4})(\d)/,"$1-$2") | |
} | |
return v | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment