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

Tesouros do GitHub
17/03/2024JAVASCRIPT

Tesouros do GitHub

O melhor do GitHub para evoluir o seu conhecimento

Saiba mais...
Resolvendo Problemas Clássicos e Explorando Programação Dinâmica com JavaScript
19/01/2025JAVASCRIPT

Resolvendo Problemas Clássicos e Explorando Programação Dinâmica com JavaScript

Problemas clássicos de programação resolvidos com JavaScript

Saiba mais...
Separando um array de strings em conjuntos de arrays ordenados alfabeticamente com JavaScript
19/03/2023JAVASCRIPT

Separando um array de strings em conjuntos de arrays ordenados alfabeticamente com JavaScript

Veja várias formas de separar um array de string com JavaScript

Saiba mais...

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


Warning: Cannot modify header information - headers already sent by (output started at /home/storage/f/7d/a9/dbins/public_html/blog/post.php:101) in /home/storage/f/7d/a9/dbins/public_html/blog/ga4_track.php on line 11