blog actif depuis 1328 jours.

retours d'expériences, codes sources, réflexions, humeurs... d'un webmaster

 

Mer.

20

Janv.

 
Voici un petit bug que j'ai eu du mal à identifier (merci FireBug).
Y arriverez-vous ?


Je cherche à vérifier le format d'un texte saisi dans champ de formulaire, le téléphone. J'utilise une fonction qui teste l'expression régulière suivante :
/^([+]?([d]{2,3})[d])?([.s]?[d]{2}[.s]?)+$/g

Cette fonction valide les numéros de la forme 0555555555, 05.55.55.55.55, +(33)555555555, +(33)5 55 55 55 55 ...

Test
Dans mon formulaire, j'ai 2 champs téléphone parfaitement différenciés.
Je saisis les 2 numéros suivants dans les 2 champs téléphone :
0555555551 et 0555555552

Résultat
le premier numéro est valide, le deuxième non !

d'où vient l'erreur ?

PS : le code HTML du formulaire et la fonction de test javascript sont corrects, je ne vous les ai donc pas montrés.

Le premier qui trouve...

 

Commentaires

Voici la solution :
Il fallait retirer le parametre /g dans l'expression régulière.
Ce paramètre global fait que lors du second appel à la fonction de test de l'expression, la vérification ne se fait pas à partir du début de la chaine mais à partir de la position précédente (lors du premier appel).

Dommage il y avait un formidable voyage à gagner...

23/01/2010

 

Ajouter un commentaire

nom / pseudo :
e-mail :

(Votre e-mail ne sera ni exploité, ni divulgué.)

site (facultatif)
 
romualb.com est sur Facebook
<Février 2012 
LunMarMerJeuVenSamDim
  01 02 03 04 05
06 07 08 09 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29