O que você precisa decidir antes do padrão
Regex é boa para conferir a forma de uma data, mas não substitui uma biblioteca de datas para verificar calendário, fuso ou anos bissextos.
Pense no problema antes de escrever Regex
Um padrão fica mais simples quando a regra já está clara. Para este caso, siga esta sequência:
- 01Escolha um formato explícito: DD/MM/AAAA, AAAA-MM-DD ou outro.
- 02Use grupos para extrair dia, mês e ano quando isso ajudar a conversão.
- 03Depois de capturar, converta para um tipo de data e deixe a biblioteca validar o calendário.
Formato DD/MM/AAAA
^\d{2}/\d{2}/\d{4}$Use quando o objetivo é confirmar dois dígitos para dia, dois para mês e quatro para ano.
Formato ISO simples
^\d{4}-\d{2}-\d{2}$Esse formato é muito comum em APIs, logs e bancos de dados.
Não transforme calendário em um monstro de Regex
Restringir meses e dias já aumenta bastante a expressão; anos bissextos deixam o padrão ainda mais difícil. Em aplicações, extraia a estrutura e delegue validade para uma API de datas.
Extraindo partes com grupos
^(?<dia>\d{2})/(?<mes>\d{2})/(?<ano>\d{4})$No RegexArena, o Raio-X mostra cada uma dessas partes separadamente.
Como ler o padrão em partes
Em vez de memorizar a expressão inteira, leia cada bloco pela responsabilidade que ele cumpre:
\d{2}garante quantidade de dígitos, não a faixa numérica correta./é literal em padrões construídos com RegExp; em literais JavaScript precisa considerar o delimitador /.(?\d{4}) um grupo nomeado deixa a intenção clara ao extrair componentes.^ ... $é importante quando a Regex representa um campo de data inteiro.Onde Regex agrega valor aqui
Use Regex para reconhecer/extrair a estrutura e uma biblioteca de datas para validar o significado.
Erros comuns
- Achar que \d{2} impede mês 99.
- Tentar codificar todos os dias possíveis de cada mês em uma Regex difícil de revisar.
- Ignorar formato ISO quando há troca de dados entre sistemas.
- Misturar parsing, validação de calendário e apresentação.
Teste e pratique
Use o Playground para experimentar o padrão com seus próprios dados e depois leve o conceito para as fases do jogo, onde os casos positivos e negativos são avaliados automaticamente.