Validando placas de veiculos com JavaScript

Validando placas de veiculos com JavaScript

Vamos aprender como validar placas de veículos com JavaScript. Mas antes, vamos entender os formatos existentes.

Desde 1990 o formato das placas de veículos no Brasil segue o padrão de 3 letras e quatro números. A partir de 2016 passou a ser implantado um padrão de placa comum aos países que fazer parte do Mercosul, este novo formato mantem o mesmo tamanho do padrão atual (7 caracteres), mas, com algumas diferenças, as 3 letras iniciais continuam, mas a parte reservada aos números sofre a substituição de uma dos números por uma letra. 

Portanto, o novo padrão tem 4 letras e 3 números. Deste 2019, todos os veículos novos passam a utilizar este formato de placa.

Para validar os diferentes formatos de placa, vamos utilizar expressões regulares. Vamos começar com o formato atual. Uma expressão regular para validar este formato ficaria assim:

var placa = "ABC1234";

const regexPlaca = /^[a-zA-Z]{3}[0-9]{4}$/;

if(regexPlaca.test(placa)){

console.log("Placa válida");

} else {

console.log("Placa inválida");

}

Vamos entender melhor esta expressão regular.Ela se digite em duas partes:

/^[a-zA-Z]{3}

Significa que ela deve começar com 3 caracteres, e estes caracteres podem ser todas as letras minúsculas (a-z) ou maiúsculas (A-Z). O "[]" serve para informar o que deve ser aceito, e o "{}" se refere a quantidade de caracteres que são esperados.

[0-9]{4}$

Significa que ela deve ter terminar com quatro números.

Com base nisso, podemos montar os outros formatos de placa. O padrão Mercosul tem pequenas variações relacionadas ao tipo de veículo. Para um carro, o formato é AAA-1A11 (3 letras, 1 número, 1 letra e 2 números). Para motocicletas, o padrão é AAA-11A1 (3 letras, 2 números, 1 letra e 1 número)

Para validar os 3 formatos ao mesmo tempo, vamos criar uma função. O código complete segue abaixo:

function validarPlaca(placa){

var resposta = "placa inválida";

const regexPlaca = /^[a-zA-Z]{3}[0-9]{4}$/;

const regexPlacaMercosulCarro = /^[a-zA-Z]{3}[0-9]{1}[a-zA-Z]{1}[0-9]{2}$/;

const regexPlacaMercosulMoto = /^[a-zA-Z]{3}[0-9]{2}[a-zA-Z]{1}[0-9]{1}$/;

if(regexPlaca.test(placa)){

resposta = "Placa válida no formato atual";

}

if(regexPlacaMercosulCarro.test(placa)){

resposta = "Placa válida (padrão Mercosul - carro)";

}

if(regexPlacaMercosulMoto.test(placa)){

resposta = "Placa válida (padrão Mercosul - moto)";

}

return resposta;

}

 

console.log(validarPlaca("ABC1234"));

console.log(validarPlaca("ABC12356"));

console.log(validarPlaca("ABC12D5"));

console.log(validarPlaca("ABC1D15"));

console.log(validarPlaca("ABC12D51"));

 

Está começando e deseja saber o que precisa estudar de HTML e JavaScript? Não deixe de conferir os roteiros de estudo de HTML e JavaScript!. São dezenas de conteúdos para você melhorar suas habilidades.

Roteiro de estudos - HTML e CSS

Roteiro de estudos - Javascript

 

Outros conteudos que podem ser de seu interesse

Upload de arquivos com validação em javascript
17/11/2019JAVASCRIPT

Upload de arquivos com validação em javascript

Aprenda a validar a extensão e o tamanho do arquivo antes de fazer upload com JS

Saiba mais...
As mensagens de erro mais comuns no JavaScript
04/10/2020JAVASCRIPT

As mensagens de erro mais comuns no JavaScript

Um resumo com as mensagens de erro mais comuns do JavaScript

Saiba mais...

Conteúdo sobre banco de dados sem complicação!