Este é o javaScript que faz a validação e a mascara da placa
function mascaraPlaca(placa, event){
var pl = placa.value; // recebe o valor de placa
regexNumericos = /\d/; // regex para todos valores numericos
regexLetras = /\D/; // regex para todos valores letras
regexNumLetra =/[a-zA-Z0-9]/; // regex para numeros e letras
var resultado = pl;
var posicao = pl.length-1 ;
var key = event.keyCode; // pegar codigo da tecla digitada
//AAA-9999 AAAA-999
// apaga tudo que for digitado caso seja algo diferente de numero ou letra
if(!regexNumLetra.test(pl)){
resultado=pl.substr(0,pl.length-1);
}
//verifico se o digito atual é numerico e se a string digitada é menor que 4 ,
//pois os 3 primeiros digitos da placa precisam ser numeros
if(regexNumericos.test(pl.substr(posicao)) && pl.length < 4){
resultado=pl.replace(regexNumericos,"");
}
//verifico o digito atual se é letra e se a string é maior que 5 pois os
//digitos a partir do 6 caracter precisam ser numeros
if(regexLetras.test(pl.substr(posicao)) && pl.length > 5){
resultado=pl.substr(0,pl.length-1);
}
//verifico se o 4 digito é Numerico e se o atual é uma letra para este caso de placa AAA-9999
//entao todas as teclas digitadas a partir do 4 caracter serão numeros
if( regexNumericos.test(pl.substr(4)) && regexLetras.test(pl.substr(posicao))){
resultado=pl.substr(0,pl.length-1);
}
//verifico se o 4 caracter é letra e se a string tem o tamanho 5 pra o caso de AAAA-999
if(regexLetras.test(pl.substr(4)) && pl.length == 5){
resultado = pl.replace("-","");//apagar o "-" da placa do tipos AAA-9999
resultado=resultado.substr(0,pl.length-1);
resultado = resultado.concat("-");//inserir o "-" para a 4 posição de string
}
//reposicionr o "-" para quando se apaga digitos
if(regexLetras.test(pl.substr(2)) && pl.length == 3 && key!=8){
resultado = pl.concat("-");
}
//quando o tamanho da string for 5 ou 4 e o ultimo digito for numero inserir "-"
if((pl.length == 5 || pl.length == 4)&& regexNumericos.test(pl.substr(pl.length-1))){
pl = pl.replace("-","");
resultado = pl.substr(0,pl.length-1).concat("-").concat(pl.substr(pl.length-1));
}
//quando se cola um valor de placa
if(key==86){
exp = /[A-Z]{3}\d{4}/ ; //AAA-9999
exp1 = /[A-Z]{4}\d{3}/ ; //AAAA-999
pl = pl.replace("-",""); // apaga todos os "-"
var executou = false;
//verifica o tipo de placa e insere o "-"
if(exp.test(pl)){
resultado =pl.substr(0,3)+"-"+pl.substr(3,4);
executou = true;
//verifica o tipo de placa e insere o "-"
}else if( exp1.test(placa.value)){
resultado =pl.substr(0,4)+"-"+pl.substr(4,5);
executou = true;
}else if(executou == false){
resultado ="";
}
}
document.getElementById('placa').value=resultado ;
}
function validaPlaca(placa, event){
var regex = /[a-zA-Z]{3}[a-zA-Z0-9]{1}\d{3}/;
}
// mascara para placas sem o - formatos AAA9999 e AAAA999
function maskPlaca(placa, event){
var pl = placa.value;
var regexNumericos = /\d/;
var regexLetras = /\D/;
var regexNumLetra =/[a-zA-Z0-9]/;
var resultado = pl;
var posicao = pl.length-1 ;
var key = event.keyCode;
//verifica se existe caracter diferente de numero ou letra
if(!regexNumLetra.test(pl)){
resultado=pl.substr(0,pl.length-1);
}
//verifica os 3 primeiros digitos são numericos
if(regexNumericos.test(pl.substr(posicao)) && pl.length < 4){
resultado=pl.replace(regexNumericos,"");
}
//verifica se os 4 primeiros digitos sao letras
if(regexLetras.test(pl.substr(posicao)) && pl.length > 4){
resultado=pl.substr(0,pl.length-1);
}
//verifica se o quarto digito é numerico e se o ultimo digitado é letra
if( regexNumericos.test(pl.substr(4)) && regexLetras.test(pl.substr(posicao))){
resultado=pl.substr(0,pl.length-1);
}
//verifica se o quarto digito é letra e se o tamanho da string é 5
if(regexLetras.test(pl.substr(4)) && pl.length == 5){
resultado=resultado.substr(0,pl.length-1);
}
if(key==86){
exp = /[A-Z]{3}\d{4}/ ;
exp1 = /[A-Z]{4}\d{3}/ ;
pl = pl.replace("-","");
var executou = false;
if(exp.test(pl)){
resultado =pl.substr(0,3)+"-"+pl.substr(3,4);
executou = true;
}else if( exp1.test(placa.value)){
resultado =pl.substr(0,4)+"-"+pl.substr(4,5);
executou = true;
}else if(executou == false){
resultado ="";
}
}
document.getElementById('placa').value=resultado ;
}
Página HTML que utilizamos o JavaScript de validação e Mascara de placas
Formatacao de campos
Nenhum comentário:
Postar um comentário