Bonjour à tous et toutes,
je suis à la recherche d'une solution me permettant de vérifier le contenu d'un champ de formulaire. Il faut que la valeur rentrée soit du type "12,34" ou "12.34" Soit un nombre, un séparateur décimal (point ou virgule) et finalement un nombre.
Un peu comme un type monétaire mais sans le symbole EUR.
Pour ce faire, j'ai donc pensé à lancé une fonction JS dès que le focus n'est plus sur le champs.
Cette fonction utiliserait éventuellement les expressions régulières.
Actuellement ma fonction ressemble à ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function test_caps2(){ var argent = document.forms['form2'].montant.value; var decimal = "," || "." ; var re = new RegExp("^\\d+$|\\d*" + decimal + "\\d+"); var myRegExp = /\D/; var matchPos2 = argent.search(myRegExp); if(matchPos2 != -1){ alert("TEST TEST TEST Caracteres interdits! Verifier le Caps Lock du clavier...\n\n"); document.forms['form2'].argent.focus(); exit(); } }
La box alert apparait bien lorsque je ne rentre pas un nombre (mais une lettre). Donc l'idée est bonne. La seule chose c'est qu'il me refuse la virgule et le point. J'ai donc tenté de modifier mon expression régulière (variable re) mais là non plus je n'obtiens pas l'effet désiré.
Le problème est donc juste de définir la bonne expression régulière pour qu'il accepte un nombre décimal avec un séparateur virgule ou point et refuse le reste.
Quelqu'un peut-il m'aider?
Partager