[Regex] besoin d'aide sur des motifs
Salut
Je viens de me rendre compte que mes regex n'étaient pas "bonnes".
Il m'en faut deux :
1) elle doit vérifier qu'il n'y a que des caractères numériques
J'avais fais :
Code:
var maReg = new RegExp("[0-9]+","");
Mais je viens de me rendre compte que si on tapais "222aaa" elle validait la chaine alors qu'il ne faudrait pas. Je ne comprend pas trop pourquoi :?
2) elle doit n'autoriser les valeurs numériques entières et décimales. Mais elle doit seulement accepter le point du pavé numérique et pas la virgule qu'il y a sous le point d'interrogation.
Jusqu'à maintenant j'utilisais la même qu'au dessus mais ca ne suffit pas et je ne vais pas trop comment faire :roll:
Merci pour votre aide
Re: [Regex] besoin d'aide sur des motifs
Citation:
Envoyé par Oluha
1) elle doit vérifier qu'il n'y a
que des caractères numériques
J'avais fais :
Code:
var maReg = new RegExp("[0-9]+","");
Mais je viens de me rendre compte que si on tapais "222aaa" elle validait la chaine alors qu'il ne faudrait pas. Je ne comprend pas trop pourquoi :?
Tu vérifies juste qu'il existe, quelque part dans ta chaine, une sous-chaine composée d'au moins un chiffre. (donc 222aaa convient car la sous-chaine 222 matche ton expression régulière).
Ajoute simplement:
Code:
1 2
|
var maReg = new RegExp("^[0-9]+$",""); |
Et ça forcera la sous-chaine à commencer au début de la chaine (opérateur ^) et à terminer à la fin (opérateur $) donc à faire toute la chaine!!
Citation:
Envoyé par Oluha
2) elle doit n'autoriser les valeurs numériques entières et décimales. Mais elle doit seulement accepter le point du pavé numérique et pas la virgule qu'il y a sous le point d'interrogation.
Jusqu'à maintenant j'utilisais la même qu'au dessus mais ca ne suffit pas et je ne vais pas trop comment faire :roll:
Je dirais:
soit une chaine composée de chiffres (\d=0-9) suivi eventuellement d'un . et d'une chaine composée de chiffres.
Bonne chance :wink:
Edit : un peu lent, mais mon post était long :)