Como o padrão funciona
| Parte | Significado |
|---|---|
(?:0[1-9]|1[0-2]) | Mês de 01 a 12 primeiro (ordem dos EUA) |
\/ | Uma barra (escapada para literais JavaScript) |
(?:0[1-9]|[12]\d|3[01]) | Dia de 01 a 31 |
\d{4}$ | Ano de quatro dígitos no final |
Exemplos de código
JavaScript
const re = /^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?:0[1-9]|1[0-2])/(?:0[1-9]|[12]\d|3[01])/\d{4}', value))PHP
preg_match('/^(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4}$/', $value) === 1;
Observações e limitações
Para aceitar também meses e dias com um dígito, troque 0[1-9] por 0?[1-9] nos dois lugares. Os dias de cada mês não são verificados, então valide a própria data depois.
Testador de Expressões Regulares
Digite um padrão e veja as correspondências serem destacadas em tempo real no seu texto de teste.