|
blog actif depuis 774 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 |
Webmaster depuis maintenant plus de 10 ans, j'ai créé ce blog pour publier mes retours d'expérience et parler du Web et du développement Web en général, mais aussi de plein d'autres choses...
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