Quiero verificar si un stringcontiene 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 inputcontenga dígitos y ningún otro carácter. Puesto que +100y -5son 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

\des exactamente equivalente a[0-9].Regular Expressionsfunciona/^\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
trueuna 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á
falseen 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