O PHP suporta expressões regulares estendidas
Para saber o que são expressões regulares estendidas, recomendo que leia este artigo aqui do blog. Então por que estou falando nisso de novo?
Semana passada, estudando um certo script PHP, me deparei com uma validação manual de data que utilizava o seguinte código (talvez as mensagens para o usuário não fossem exatamente essas, é verdade):
if (!ereg('[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]_[0-9][0-9]:[0-9][0-9]:[0-9][0-9]', $date)) {
echo 'Data inválida! Se deu mal!';
} else {
echo 'Hoje passa... mas não acostuma!';
}
A idéia é validar uma data no formato AAAA-MM-DD_HH:mm:SS. Não ficou muito
óbvio, certo? Expressões regulares já são complexas por natureza, então é um
pecado mortal complicar aquelas que podem ser definidas de maneira simples.
Como a função ereg suporta expressões regulares estendidas (e há exatamente
esse exemplo na documentação oficial!) o código pode ser reduzido para:
if (!ereg('[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}:[0-9]{2}:[0-9]{2}', $date)) {
echo 'Data inválida! Se deu mal!';
} else {
echo 'Hoje passa... mas não acostuma!';
}
A Dona Legibilidade de Código agradece!
