|
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]?)+$/gCette 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
Ajouter un commentaire |
romualb.com est sur Facebook
![]()
![]()
![]()
|
|||||||||||||||||||||||||||||||||||||||||||||||||
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