2012-05-27 27 views
10

Tengo el siguiente código. Funciona solo cuando tengo 2 dígitos. Si tengo 1 dígito no funciona. Quiero trabajar en ambos casos: uno o dos dígitos.
var numberRegex = /^[1-9][0-9]$/;
he intentado algo como esto, pero por desgracia no funciona:
var numberRegex = /^[1-9]?[1-9][0-9]$/;
Gracias por el apoyo.Uno o dos dígitos numéricos Regex

Respuesta

15

probar este:

/^\d{1,2}$/; 

lectura lo que tiene parece que usted no desea aceptar números como 01.

/^\d{1}|[1-9]\d{1}$/; 
+0

La segunda expresión regular no es del todo correcta. '|' tiene una precendencia menor que '^' y '$'. También puede simplificar simplemente haciendo que el '[1-9]' sea opcional. '/^[1-9]? \ D {1} $ /' –

+0

Acaba de darse cuenta de que puede hacerlo aún mejor - '\ d {1}' es redundante, y es equivalente a '\ d'. –

+6

Iría con '/^[1-9]? \ D $ /' No hay necesidad de alternar, solo haga que el dígito inicial sea opcional. –

0

probar esto de expresiones regulares: /^[1-9]\d{0,1}$/

1

probar esto.

/^[0-9]|[0-9][0-9]$/ 

Esto debería hacer el trabajo. Usar un operador Or lo hace.

+0

Esta es una excelente solución para principiantes de Regex – GoreDefex

Cuestiones relacionadas