O PHP suporta expressões regulares estendidas

Em: 30/09/2008 Tags: , Referencie do seu blog (Trackback)

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!

Artigos relacionados:

Escreva um comentário (utilize o formato Markdown)