Bonjour,
Je recherche une expression réguliere en JS qui me permette de tester une valeur qui soit un entier ou un décimal (avec "." ou ",").
Quelqu'un aurait il ça sous la main par hasard?
D'avance merci!
Version imprimable
Bonjour,
Je recherche une expression réguliere en JS qui me permette de tester une valeur qui soit un entier ou un décimal (avec "." ou ",").
Quelqu'un aurait il ça sous la main par hasard?
D'avance merci!
valideCode:/^[0-9]+([.,][0-9]+)?$/
1
1.1
111,11111
1,111
etc...
ne valide pas
1.
1,
1.1.1
.0
,123
1,11.11
etc ...
Il y a aussi éventuellement la solution consistant à comparer la chaine originale avec une chaine issue de la double conversion chaine > nombre > chaine.
Je pense à quelque chose comme :Enfin c'est une piste quoi ^^Code:
1
2
3
4 function verif(chaine) { chaine = chaine.replace(/,/g, "."); return (parseFloat(chaine).toString() == chaine); }
Quoi qu'il en soit, la regexp de SF semble nickel* (si on y ajoute un détail pour gérer les nombres négatifs :mrgreen:)* heu... tiens au fait : ne doit-on pas échapper le ".", même quand il est contenu dans des "[]" ? :? ...me rappelait pas.Code:/^(-)?[0-9]+([.,][0-9]+)?$/
Et une dernière petite correction quand même :Sur le forum JS, notre boss de la regexp a des particularités anatomiques inattendues :mouarf:Citation:
Quelqu'un aurait il ça sous lamainpatte palmée par hasard?
Tiens je l'avais oubliée cette fonction ^^
Du coup j'ai testé dans la console de Firebug et j'allais poster pour dire c'est la meilleure solution... mais ".2" passe le test... :?
Autre chose en passant : si jamais tu as besoin d'accepter les notations scientifiques (genre 1.548715e54) :Code:/^(-)?[0-9]+([.,][0-9]+(e(-)?[0-9]+)?)?$/
Salut,
+1Citation:
on y ajoute un détail pour gérer les nombres négatifs
Bah tiens justement ! Puisqu'on y est, on peut prendre en compte : +1 :mouarf:
Code:/^[-+]?[0-9]+...