2013/7/4 Marcelo da Silva <[email protected]>
>
> Pessoal, tenho a seguinte função:
>
> -- Function: fvalidaemail(text)
>
> -- DROP FUNCTION fvalidaemail(text);
>
> CREATE OR REPLACE FUNCTION fvalidaemail(text)
> RETURNS boolean AS
> $BODY$select $1 ~ '^[^@\s]+@[^@\s]+(\.[^@\s]+)+
as result
> $BODY$
> LANGUAGE sql VOLATILE
> COST 100;
> ALTER FUNCTION fvalidaemail(text)
> OWNER TO postgres;
>
>
> Peguei esta função na Web, mas tem algo estranho, ela está considerando
emails abaixo como Falso
>
> Emails:
> [email protected]
> [email protected]
> [email protected]
> [email protected]
> etc
>
> Olhei bastante e não vi nada de errado com os emails citados
>
Marcelo,
Fiz alguns testes com sua função e emails (abaixo resultados) e não
encontrei problemas
com a mesma.
fabrizio=# CREATE OR REPLACE FUNCTION fvalidaemail(text)
fabrizio-# RETURNS boolean AS
fabrizio-# $BODY$select $1 ~ '^[^@\s]+@[^@\s]+(\.[^@\s]+)+$' as result
fabrizio$# $BODY$
fabrizio-# LANGUAGE sql VOLATILE
fabrizio-# COST 100;
CREATE FUNCTION
fabrizio=#
fabrizio=#
fabrizio=# SELECT fvalidaemail('[email protected]');
fvalidaemail
--------------
t
(1 row)
fabrizio=# SELECT fvalidaemail('[email protected]');
fvalidaemail
--------------
t
(1 row)
fabrizio=# SELECT fvalidaemail('[email protected]');
fvalidaemail
--------------
t
(1 row)
fabrizio=# SELECT fvalidaemail('[email protected]');
fvalidaemail
--------------
t
(1 row)
Tem também um outro regex que pode ser usado, veja:
CREATE OR REPLACE FUNCTION fvalidaemail(text)
RETURNS boolean AS
$BODY$select $1 ~ '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$' as result
$BODY$
LANGUAGE sql VOLATILE
COST 100;
Espero ter ajudado.
Att,
--
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral