Quiero verificar si un string
contiene solo dígitos. Usé esto:
var isANumber = isNaN(theValue) === false;
if (isANumber){
..
}
Pero se dio cuenta de que también permite +
y -
. Básicamente, quiero asegurarme de que un solo input
contenga dígitos y ningún otro carácter. Puesto que +100
y -5
son ambos números, isNaN()
no es el camino correcto a seguir. Tal vez una expresión regular es lo que necesito? ¿Algun consejo?
javascript
numbers
digits
patad
fuente
fuente
\d
es exactamente equivalente a[0-9]
.Regular Expressions
funciona/^\d*$/
en cambio , si encuentra una cadena vacía que contiene solo dígitos .fuente
fuente
isNumber = () => /^\d+$/.test(this);
su lugar, y su uso comoconsole.log(isNumber("123123));
Si desea incluso admitir valores flotantes (valores separados por puntos), puede usar esta expresión:
fuente
\d+
a\d*?
, podrá hacer coincidir 0 - 9, así como números como .333var isNumber = /^\d*\.?\d+$/.test(value)
- coincide con '3.5', '.5', '3' - no coincide con '3.'Aquí hay otra forma interesante y legible de verificar si una cadena contiene solo dígitos.
Este método funciona dividiendo la cadena en una matriz usando el operador de propagación , y luego usa el
every()
método para probar si todos los elementos (caracteres) en la matriz están incluidos en la cadena de dígitos'0123456789'
:fuente
true
una cadena vacía''
y una matriz vacía[]
, una matriz de enteros[1, 2, 3]
(una vez que son <10). Es más propenso a errores / mal uso que la expresión regular básica/^\d+$/
, creoEsto es lo que quieres
fuente
Aquí hay una solución sin usar expresiones regulares:
donde 48 y 57 son los códigos char para "0" y "9", respectivamente.
fuente
Aunque esto volverá
false
en cadenas con ceros iniciales o finales.fuente
Bueno, puedes usar la siguiente expresión regular:
fuente
si desea incluir valores flotantes también puede usar el siguiente código
esto probará solo dígitos y dígitos separados con '.' la primera prueba cubrirá valores como 0.1 y 0 pero también .1, no permitirá 0. entonces la solución que propongo es revertir el Valor para que .1 sea 1. entonces la misma expresión regular no lo permitirá.
ejemplo:
fuente
Si una cadena contiene solo dígitos, devolverá nulo
fuente