Bonsoir,
Version imprimable
Bonsoir,
Bonsoir,
Utilisez plutôt les expressions régulières. Il y a plusieurs exemples qui traînent sur le forum et dans les codes sources/faq et autres.
Vérifiera que la chaine égale bien "__.__.__.__.__". On dirait une instruction SQLienne. ;)Code:commande.tel.value=="__.__.__.__.__"
C'est audacieux de mettre un for dans la condition du if. Peut-être un peu trop audacieux. :PCode:for(i=0,i<3,3*i+2){commande.tel.value.charAt(i)!="."}
Pour le moins... :aie:Citation:
Envoyé par vermine
Salut,
Sans les expressions rationnelles, on peut faire comme ceci.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 var s=commande.tel.value; var f=(s.length==14); if(f){ var i,n,p,v; for(i=0;i<5;i++){ n=s.substr(i*3,2); // Nombre à deux chiffres p=(i<4)?s.substr((i+1)*3-1,1):'.'; // Séparateur v=n+p+'0'; f=((!isNaN(v))&&(parseInt(v,10)>=0)); // Teste si (n + p +'0') est un nombre (nn.0) if(!f)break; } } if(!f){ alert('Veuillez corriger votre numéro de téléphone'); return false; }
ou encoreCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <script type="text/javascript"> function veriftel(){ var ok=true; var tel=document.getElementById('tel').value.split('.') var nr=-1; while(tel[++nr]){ ok=ok && (tel[nr].toString().length==2 && !isNaN(tel[nr]) ) } return ok && nr==5 } </script> <title>verif tel</title> </head> <body> <input type="text" id="tel" value="__.__.__.__.__" /> <input type="button" onclick="alert(veriftel()?'ok':'ko')" value="test" /> </body> </html>
Je ne voulais pas utiliser la fonction split([séparateur][, limite]) car j'avais oublié que le paramêtre séparateur peut ne pas être traité comme une expression rationnelle.
Merci SpaceFrog pour cette piqure de rappel.Citation:
séparateur
Spécifie le caractère à utiliser pour séparer la chaîne. Le séparateur est traité comme une chaîne ou une expression rationnelle.
Aie ! ça pique !