¿Cómo hago coincidir también los números negativos con esta expresión regular? Esta expresión regular funciona bien con valores positivos, pero quiero que también permita valores negativos, por ejemplo, -10, -125.5, etc.
^[0-9]\d*(\.\d+)?$
Gracias

Respuestas:
Debe 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.00y ambos coincidieron como se esperaba.
fuente
^-?[0-9]\d*(\.\d+)?$^[-+]?[0-9]\d*(\.\d+)?$Algunos ejemplos de expresiones regulares:
Enteros positivos :
Enteros negativos :
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}$fuente
No sé por qué lo necesitas primero
[0-9].Tratar:
^-?\d*(\.\d+)?$Actualizar
Si desea asegurarse de tener un dígito en el lugar de las unidades, utilice
^-?\d+(\.\d+)?$fuente
^-?\d+(\.\d+)?$de lasACTUALIZADO (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.98701fuente
-*a-?porque coincide-------------.Esto permitirá un carácter
-o+solo cuando esté seguido de un número:^([+-](?=\.?\d))?(\d+)?(\.\d+)?$fuente
Esto permitirá números enteros positivos y negativos
fuente
Tengo algunos experimentos sobre expresiones regulares en la url de django, que requieren números negativos a positivos
^(?P<pid>(\-\d+|\d+))$Centrémonos en esta
(\-\d+|\d+)parte e ignoremos otras, este punto y coma|significa OR en expresión regular, entonces el valor negativo coincidirá con esta\-\d+parte y el valor positivo en esta\d+fuente
Esto funcionó para mí, permitiendo números negativos y positivos :
\-*\d+Si usa C #:
Regex.Match(someString, @"\-*\d+").Value;fuente
Simplemente agregue un token 0 o 1:
^-?[0-9]\d*(.\d+)?$fuente
Solo para números negativos, esto es perfecto.
^-\d*\.?\d+$fuente
^[+-]?\d{1,18}(\.\d{1,2})?$acepta valores decimales positivos o negativos.
fuente
Expresión regular para número, punto decimal opcional, negativo opcional:
^-?(\d*\.)?\d+$;funciona para entero negativo, decimal, negativo con decimal
fuente
^(-?\d+\.)?-?\d+$permitir:
23425.23425 10.10 100 0 0.00 -100 -10.10 10.-10 -10.-10 -23425.23425 -23425.-23425 0.234fuente
Si tienes esto
val="-12XXX.0abc23"y quieres extraer solo el número decimal, en este caso esta expresión regular (^-?[0-9]\d*(\.\d+)?$) no te ayudará a lograrlo.este es el código correcto con la expresión regular de detección correcta:
var val="-12XXX.0abc23"; val = val.replace(/^\.|[^-?\d\.]|\.(?=.*\.)|^0+(?=\d)/g, ''); console.log(val);fuente