¿Cuál sería la expresión regular de JavaScript para determinar si los dígitos después del punto decimal son solo cero y la cantidad de ceros después del punto decimal es mayor que dos?

Algunos casos de prueba:

8 -> false
8.0 -> false
8.00 -> false
8.000 -> true
8.0000 -> true
8.00001 -> false
0
Mark13426 29 ago. 2014 a las 02:23

3 respuestas

La mejor respuesta

Según sus comentarios, si 0.000 es legal y desea rechazar múltiples ceros a la izquierda junto con solo ceros después de que el punto decimal sea mayor que dos, lo siguiente debería funcionar para usted.

/^(?!00)\d+\.0{3,}$/

Explicación :

^         # the beginning of the string
(?!       # look ahead to see if there is not:
  00      #   '00'
)         # end of look-ahead
 \d+      #   digits (0-9) (1 or more times)
 \.       #   '.'
 0{3,}    #   '0' (at least 3 times)
$         # before an optional \n, and the end of the string

Demostración en vivo

3
hwnd 28 ago. 2014 a las 22:59

Prueba esto:

var pattern = /^\d+\.0{3,}$/; // Regex from @hwnd

function checkDigits(digits) {

    var result = pattern.test(digits);

    return result;
}

alert(checkDigits("5.000")); //Returns true.
0
mwilson 28 ago. 2014 a las 22:42

Aquí está la expresión regular que coincide con un . y luego 3 o más ceros al final de la cadena.

/\.0{3,}$/
0
nisargjhaveri 28 ago. 2014 a las 22:30