¿Cómo comparo los números negativos también con esta expresión regular? Esta expresión regular funciona bien con valores positivos, pero también quiero que permita valores negativos, por ejemplo, -10, -125.5, etc.
^[0-9]\d*(\.\d+)?$
Gracias
Debería agregar un guión opcional al principio agregando -?
( ?
es un cuantificador que significa una o cero ocurrencias ):
^-?[0-9]\d*(\.\d+)?$
Lo verifiqué en Rubular con estos valores:
10.00 -10.00
y ambos coincidieron como se esperaba.
Algunos ejemplos de expresiones regulares:
Enteros positivos :
^\d+$
Enteros negativos :
^-\d+$
Entero :
^-?\d+$
Número positivo :
^\d*\.?\d+$
Número Negativo :
^-\d*\.?\d+$
Número positivo o número negativo :
^-?\d*\.{0,1}\d+$
Número de teléfono :
^\+?[\d\s]{3,}$
Teléfono con código :
^\+?[\d\s]+\(?[\d\s]{10,}$
Año 1900-2099 :
^(19|20)[\d]{2,2}$
Fecha (dd mm aaaa, d / m / aaaa, etc.):
^([1-9]|0[1-9]|[12][0-9]|3[01])\D([1-9]|0[1-9]|1[012])\D(19[0-9][0-9]|20[0-9][0-9])$
IP v4 :
^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]){3}$
No sé por qué necesitas eso primero [0-9]
.
Tratar:
^-?\d*(.\d+)?$
Actualizar
Si quiere estar seguro de que tendrá un dígito en el lugar de las unidades, use
^-?\d+(.\d+)?$
Esto permitirá un carácter -
o +
solo cuando esté seguido por un número:
^([+-](?=\.?\d))?(\d+)?(\.\d+)?$
ACTUALIZADO (13/08/2014): Este es el mejor código para números positivos y negativos =)
(^-?0\.[0-9]*[1-9]+[0-9]*$)|(^-?[1-9]+[0-9]*((\.[0-9]*[1-9]+[0-9]*$)|(\.[0-9]+)))|(^-?[1-9]+[0-9]*$)|(^0$){1}
Intenté con estos números y funciona bien:
-1234454.3435 -98.99 -12.9 -12.34 -10.001 -3 -0.001 -000 -0.00 0 0.00 00000001.1 0.01 1201.0000001 1234454.3435 7638.98701
Esto permitirá números enteros positivos y negativos
ValidationExpression = “^ -? [0-9] \ d * (\ d +)? $”
Tengo algunos experimentos sobre regex en django url, que requieren números negativos a positivos
^(?P(\-\d+|\d+))$
Centrémonos en esta parte (\-\d+|\d+)
e ignorando otras, este punto y coma |
significa O en expresiones regulares, entonces el valor negativo coincidirá con esta parte \-\d+
, y el valor positivo en este \d+
Solo agrega un token de 0 o 1:
^-?[0-9]\d*(.\d+)?$
Solo para números negativos, esto es perfecto.
^-\d*\.?\d+$
Expresión regular para el número, punto decimal opcional, negativo opcional:
^-?(\d*\.)?\d+$;
funciona para entero negativo, decimal, negativo con decimal
Esto funcionó para mí, permitiendo números negativos y positivos :
\-*\d+
Si usa C #:
Regex.Match(someString, @"\-*\d+").Value;
^[+-]?\d{1,18}(\.\d{1,2})?$
acepta valores decimales positivos o negativos