2011-02-17 97 views
7

Quiero validar un número usando regex .. la condición es número puede ser desde cualquier valor negativo de 3 dígitos hasta 3 dígitos positivos ... pero no puede ser cero.Regex para un rango numérico de números negativos?

alguien puede ayudarme a obtener la condición de regular para esto.

+2

¿Por qué no simplemente analizar el número y luego verificarlo en el código? –

+0

Gracias Anon ... pero necesito una declaración de expresiones regulares ... Tengo que pasarlo a una función. –

+1

regex es un analizador de cadenas, ¿quiere decir que tiene una cadena de caracteres de un número que no puede analizar como un número? ¿Qué idioma estás usando? Anon tiene un buen punto, este caso no debería requerir expresiones regulares. por favor agregue más información a la pregunta. – Joe

Respuesta

9

No es Puede o no comenzar con el símbolo negativo, seguido de un número entre 1 y 9 y luego puede ser 0 a 2 de cualquier número.

^\-?[1-9]\d{0,2}$ 

Actualización: Y la siguiente expresión regular también permite decimales

^\-?[1-9]\d{0,2}(\.\d*)?$ 
+0

Gracias pcofe ... ¿cómo cuidar los decimales en esta expresión? –

+0

There's^\ -? [1-9] \ d {0,2} (\. \ D *)? $ – pcofre

1

Suponiendo que se trata de números enteros, y su número no se mezclan con otros textos, se puede probar este

^-?[1-9][0-9]{0,2}$ 

Estoy de acuerdo con Anon, es mucho mejor para leer la cadena, y convertir es int para hacer la comparación, si tiene entradas predecibles.

0

tengo algunos experimentos sobre expresiones regulares en la url Django, el cual requiere de negativo a números positivos

^(?P<pid>(\-\d+|\d+))$ 

Let de que nos hemos centrado en esta parte (\-\d+|\d+) e ignorando otros, este punto y coma | significa O en expresiones regulares, luego si obtuvimos un valor negativo, se combinará con esta parte \-\d+, y un valor positivo en esta \d+ parte

0

Creo que en todas las entradas anteriores como esta se permite -2-22,2-22 que es un error menor. opinión sobre esta así: -

[\-]?[0-9]*$/ 

aún menor:

/^[\-]?\d*$/ 
0

he utilizado esto con los System.Text.RegularExpressions .NET para que coincida con decimales positivos o negativos (números).

(\d+|-\d+) 
Cuestiones relacionadas