Fonction Validation Email qui ne fonctionne pas alors qu'elle devrait

Fonction Validation Email qui ne fonctionne pas alors qu'elle devrait - PHP - Programmation

Marsh Posté le 10-06-2005 à 17:20:36    

J'utilise les "regulars expressions" pour valider.  
J'ai testé mon expression dans expresso et en .Net et ça fonctionne.
Mais en php , il me renvoie toujours "false" même si l'adresse est bonne.
 

Code :
  1. $is_valid = eregi("^[\w.-]+@[\w.-]{1,}[a-z0-9]{1}[.][a-z]{2,5}$", strtolower(trim($address)));


 
des idées ?

Reply

Marsh Posté le 10-06-2005 à 17:20:36   

Reply

Marsh Posté le 10-06-2005 à 17:54:10    

[HORS-SUJET]eregi() est insensible à la casse, donc strtolower() est inutile[/HORS-SUJET]

Reply

Marsh Posté le 10-06-2005 à 18:01:52    

ouais je sais, mais je l'ai mis des fois que le problème vienne de là

Reply

Marsh Posté le 10-06-2005 à 18:02:11    

C'est n'importe quoi ton masque :/

Reply

Marsh Posté le 10-06-2005 à 18:04:24    

Ben non c'est pas n'importe quoi ! Il fonctionne en .Net et dans expresso.
 
 

Reply

Marsh Posté le 10-06-2005 à 18:04:34    

{1,} -> +
{1}  -> rien
[.]  -> \.
eregi = fonction regex posix ... alors que \w c'est pour les PCRE uniquement me semble-t-il.


Message édité par afbilou le 10-06-2005 à 18:07:46
Reply

Marsh Posté le 10-06-2005 à 18:06:53    

En posix il faut utiliser ca :
[:digit:]      Only the digits 0 to 9
[:alnum:]      Any alphanumeric character 0 to 9 OR A to Z or a to z.
[:alpha:]      Any alpha character A to Z or a to z.
[:blank:]      Space and TAB characters only.
[:xdigit:]    .
[:punct:]      Punctuation symbols . , " ' ? ! ; :
[:print:]      Any printable character.
[:space:]      Any space characters.
[:graph:]      .
[:upper:]      Any alpha character A to Z.
[:lower:]      Any alpha character a to z.
[:cntrl:]        .
 
Mais ... oublie posix ... c'est moins puissant et moins rapide que les PCRE (Perl Compatible RegEx)


Message édité par afbilou le 10-06-2005 à 18:08:47
Reply

Marsh Posté le 10-06-2005 à 18:07:18    

ouais finalement tu marques un point. J'ai tellement bidouillé dedans j'avais pas vu mon {1}.
 
Ok pour le \w

Reply

Marsh Posté le 10-06-2005 à 18:13:37    

Enfin, ça fonctionne. Tu as bien raison, mon erreur étant dans le \w.  
Merci bcp ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed