Bonjour,

Je débute en JQuery et je me bats depuis quelque temps avec la validation d'un des champs de mon formulaire. Le reste fonctionne nickel (champs vides, validation email, etc.) mais la vérification du téléphone ne se fait pas et, en plus, ça bloque le reste de vérifications Peut-être la syntaxe n'est pas correcte, je l'ai faite un peu au pif en regardant sur divers forums. Si quelqu'un peut m'indiquer ce que je dois modifier ... Merci d'avance pour vos réponses !

Voici le bout de code qui concerne la vérification du champ "téléphone" uniquement :

var tel = new RegExp('^[0-9]\+\d\d 0\d \d\d \d\d \d\d \d\d$'); // numéro de téléphone type "international" +XX (0)X XX XX XX XX
if(tel.test($("#telephone").val())){
$("#telephone").css({backgroundColor:"#FFFFFF", color:"#004c8a"});//changement de la couleur du champ s'il contient une valeur
} else {
erreur=true;
alert("Vous devez fournir un numéro de téléphone dans le format suivant +33 (0)2 ....");
$("#telephone").css({backgroundColor:"#004c8a"}); ...

1 réponse


Déjà tu peux vite fait vérifier par la taille, si c'est trop grand ou trop petit, ensuite ton RegExp est horrible.

Un bon RegExp pour ceci serait ^+33[0-9]{9}$ pour un numéro du type +33605040302 ou tu as cette forme aussi ^+33\s\s0-9]{13}$ pour des numéro de type +33 6 05 04 03 02. Enfin c'est pas optimiser, car la dernière si tu fait +33 6 050 4 03 02 ça marche aussi.

Après un truc bien optimiser il y a ^+33\s((0)|0)?[1-9]{1}(\s[0-9]{2}){4}$ qui marche pour +33 6 05 04 03 02, +33 06 05 04 03 02 et +33 (0)6 05 04 03 02.