Regex – vérifiez pour décimal (javascript)

J'ai obtenu cette expression de stackoverflow lui-même – /^\d+(\.\d{0,9})?$/ .

Il s'occupe de:

 2 23 23. 25.3 25.4334 0.44 

Mais échoue sur .23 . Cela peut-il être ajouté à l'expression ci-dessus, ou quelque chose qui prendrait soin de tous?

Cela capture tous les cas que vous avez publiés ainsi que .23

Limite à 9 décimales

 var isDecimal = string.match( /^(\d+\.?\d{0,9}|\.\d{1,9})$/ ); 

Pas de limites décimales:

 var isDecimal = string.match( /^(\d+\.?\d*|\.\d+)$/ ); 

Cela couvre tous vos exemples et applique la limite décimale à 9 chiffres:

 /^(?=.?\d)\d*(\.\d{0,9})?$/ 

Règles:

  • Au moins un chiffre (pas une chaîne vide ou juste un . )
  • Partie entière facultative de toute longueur
  • Partie décimale facultative jusqu'à 9 chiffres

Une chose que je veux noter, c'est qu'il accepte votre exemple de 23. , mais j'appellerais un numéro invalide. Si vous changez d'avis sur celui-ci, utilisez ceci:

 /^\d*(\.\d{0,8})?\d$/ 

Essayez cette expression:

^\d*\.?\d*$