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:
.
) 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*$