J'ai besoin d'une expression régulière en JavaScript qui n'acceptera que des nombres positifs et des décimales. C'est ce que j'ai mais quelque chose ne va pas - il ne semble pas prendre des chiffres positifs. par exemple, 9 code> ne fonctionnera pas. Comment puis-je restructurer cela, donc s'il y a au moins un chiffre positif, cela fonctionnera? P> P>
6 Réponses :
Il existe peu de façons différentes de le faire en fonction de vos besoins: p>
Généralement, je vous recommande d'utiliser un simple guide de référence RegexP comme http://www.regular-expressions.info/ pour les expressions de construction, puis testez-les à l'aide de JavaScript à droite de votre console de navigateur: P>
/ ^ [0-9.] + $ / code> correspondance 1 code> et 1.1 code> mais pas -1 code> p>
/ ^ [0-9] + \. [0-9] + $ / code> correspondant 1.1 code> mais pas 1 code> ou ou -1 code> p>
"123,45" .match (/ ^ [0-9.] + $ /) code> p>
Cela inclura également ... code> et ainsi de suite.
C'est vrai que - semblait être la question plus large avant qu'elle ait été modifiée.
/^[+]?([1-9][0-9]*(?:[\.][0-9]*)?|0*\.0*[1-9][0-9]*)(?:[eE][+-][0-9]+)?$/
@Mikechristensen, il ne gère pas la notation scientifique, mais vous pouvez gifler un facultatif [ee] [+ -]? [0-9] + code> avant le $ code> pour gérer ce.
Comment ajouter une contrainte de longueur dedans, indique que pour permettre au nombre d'un numéro après l'ex-12.22 est valide mais 12.123 non
@Saurabh, vous devez modifier le [0-9] * et [0-9] + pour utiliser un nombre de plage à la place: / ^ [+]? ([0-9] + (?: [ \.] [0-9] {0,2})? | \. [0-9] {1,2}) $ / code>
@Mikesamuel Merci, cela fonctionne de valider pour chiffrer après le point après le point, mais pas avant le point, j'ai essayé de modifier comme / ^[0-9] {0,2.0,2. " 9] {0,2})? | \. [0-9] {1,2}) $ / Pour limiter la valeur Avant le point sur 2 chiffres, l'exemple de valeur max peut être de 99,99 et positif
Du comme:
Cela ne correspond pas aussi à des choses comme .0.0 code>?
Vous pouvez essayer ceci -
^\d{0,10}(\.\d{0,2})?$
J'ai trouvé quelque chose d'intéressant qui travaille pour moi !!! J'espère que pour toi aussi ... !!! p>
[0-9] . [0-9] em> p>
regex pour n'accepter qu'un nombre positif avec un point décimal p>
correspondance:
1, 2564, 2.5545, 254.555 P>
pas correspondant:
-333, 332.332.332, 66-665.455, 55554-4552 P>
J'ai fait un au cas où les gens sont intéressés: ^ ([0-9] *) (. [[0-9] +]?)? $
mais il n'a pas de signe '+' Bien que cela n'accepte pas non plus '-' signe p>
Il accepte: p> rejeter: p>
Depuis que vous avez + après chaque classe de caractères [0-9], les chiffres sans décimales devront être au moins deux chiffres.