Validações com expressões regulares

Started by rodweb, 29 de January , 2008, 07:40:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

rodweb

Validações com expressões regulares

Aqui vão as funções que fiz para validação de alguns dados vindos do formulário HTML.

Funções:

vEmail(string); - return boolean
Quotefunction vEmail($email){
   return ereg("^[a-z0-9.-\_]+@[a-z0-9.-]{3,}\.[a-z0-9.-]{2,}", $email);
}

*Valida emails no formato ( a@a.a )


vUrl(string); - return boolean
Quotefunction vUrl($url){
   return ereg("^(http|https)://[a-z0-9.-]{3,}\.[a-z0-9.-]{2,}", $url);
}

*Valida URLs no formato ( http://www.dominio.tipo )
*Não valida ( ftp:// ) - mais pode editar se quiser

vDate(string); - return boolean
Quotefunction vDate($date){
   return ereg("^[0-9]{1,2}(/|-)[0-9]{1,2}(/|-)[0-9]{4}", $date);
}

*Valida datas no formato ( 11/03/2008 )
*Não valida ( 11/3/08 ) - mais pode editar se quiser
*Datas do tipo 99/99/9999 serão validadas, se quiser algo mais específico para restringir isso vai ter que usar muito a cabeça :P ou valide pelo PHP direto que vai ser mais fácil.


Exemplo de uso:

<?php
//by rodweb
$email trim($_POST['email'&#93;);
$url trim($_POST['url'&#93;);
$data trim($_POST['data'&#93;);

if(!vEmail($email))
{
   echo 
"Email inválido!";
}

if(!
vUrl($url))
{
   echo 
"URL inválida!";
}

if(!
vDate($data))
{
   echo 
"Data inválida!";
}
?>



Vocês podem fazer essas validações em JavaScript também, para não precisar ir para outra página verificar, ou então use com Ajax.


Referência: Ereg - PHP.net
Guia de Expressões Regulares: On Line

Flws...

Wuefez

Ótima postagem, não poderia ser melhor, eu sempre coloco uma mascara de JS em cima dos meus campos pra formatar eles, mas sempre aparece um babaquara com JS desligado no browser pra fuder meu DB......

falouzzz


"Quem fala não faz."

branco

juntando validação em PHP com ajax, temos uma validação "javascript" com a segurança do server-side  ;)
Olha o trem... Quem vai ficar, quem vai partir? Quem vai chorar, quem vai sorrir?