Comment puis-je modifier cette expression régulière pour autoriser des nombres avec un seul point?Autoriser un seul point dans les nombres décimaux
/[^0-9\.]/g
Il permet actuellement:
- 0,13
- 0.13.1 (cela ne devrait pas être admissible)
Comment puis-je modifier cette expression régulière pour autoriser des nombres avec un seul point?Autoriser un seul point dans les nombres décimaux
/[^0-9\.]/g
Il permet actuellement:
Votre expression régulière ne correspond pas à ce que vous dites. Vous avez utilisé négation dans la classe de caractères, et cela aussi sans aucun quantificateur. Actuellement, il correspond à tout autre caractère autre que .
.
Pour vos besoins, vous pouvez utiliser cette regex:
/^\d+(\.\d+)?$/
Faire le match positif:
/^\d*(\.\d+)?$/
N'importe quel nombre de chiffres, éventuellement suivi d'un point et d'au moins un chiffre. Mais ça ne vaut pas le coup de garder un match négatif.
Si vous voulez interdire une chaîne vide (l'expression régulière originale ne ferait pas), vous pouvez le faire:
/^(?=.)\d*(\.\d+)?$/
Mais vous pouvez aussi simplement vérifier une chaîne vide, ce qui semble mieux de toute façon.
les opérations suivantes:
/^(\d*)(\.\d*)?$/g
Essayez,
(value.match(/^\d+([.]\d{0,1})?$/))
'[.]' → '\ .'; '{0,1}' → '?'; 'value.match (x)' → 'x.test (valeur)' – Ryan
Vous pouvez essayer les regex suivante^[- +]? \ d *.? \ d * $
Je suppose que cela devrait faire /^(\d*)\.{0,1}(\d){0,1}$/
OU /^(\d*)\.?(\d){0,1}$/
(\d*)
Représente le nombre de chiffres avant la virgule.
\.
suivi de {0,1}
OU ?
s'assurera qu'il n'y a qu'un seul point.
(\d){0,1}
Autorise uniquement un chiffre après la virgule.
Il y a tellement de questions similaires liées à la droite de cette page. Vous ne les avez pas vus quand vous écriviez votre question? –
Vous n'avez pas besoin d'échapper un point dans une classe de caractères – HamZa
@dystroy, j'ai fait une recherche approfondie avant de poster, mais aucun fourni une réponse satisfaisante. et aucun sur le bon point à ce que je demande –