2011-02-04 2 views

Répondre

2

Cela devrait fonctionner:

/^0*(\.0+)$?/

0  -> true 
.0  -> true 
.000  -> true 
.001  -> false 
.01  -> false 
1.0000 -> false 
0.000000 -> true 
1.1100 -> false 

Note: cette regex suppose qu'il n'y a pas de constructions comme +0.00; Si vous avez besoin de quelque chose comme ça, utilisez ceci: /^\+?0*(\.0+)$?/. Aussi, si vous me demandez, vous devriez l'équivalent parseFloat(str) === 0.0 pour votre langue.

1
/^\+?0+(\.0+)?$/ 

devrait faire l'affaire.

(je sais 0 ce ne peut être positif ou négatif, mais je pense qu'il est bon de vérifier un signe positif juste au cas où)

+0

ne fonctionne pas '0' –

+0

Il a accepté 00.001 aussi. J'ai édité. – ryebr3ad

0

Cela correspondra exactement 0.0 et 00.00 comme l'a demandé. Mais c'est une bonne idée de vérifier une quantité indéfinie de zéro comme décrit dans les autres réponses.

/^0{1,2}\.0{1,2}$/ 
+0

Bonne chose, il y a une quantité infinie de façons d'exprimer 0, hein? :) – ryebr3ad

0

peut pas vraiment dire cela est mieux que ce qui est déjà présenté, mais il est une autre approche:

$r = "^[^-0.]" 
"0.0" -notmatch $r 
"00.00" -notmatch $r 
"-1" -notmatch $r 
"1" -notmatch $r 

True 
True 
True 
False 
Questions connexes