Necesito comprobar si justPrices[i].substr(commapos+2,1)
.
La cadena es algo como: "blabla, 120"
En este caso, verificaría si '0' es un número. ¿Cómo se puede hacer esto?
javascript
lisovaccaro
fuente
fuente
Respuestas:
Puede usar operadores de comparación para ver si está en el rango de caracteres de dígitos:
fuente
puede usar
parseInt
y luego consultar conisNaN
o si desea trabajar directamente en su cadena, puede usar regexp como este:
fuente
function is_numeric_char(c) { return /\d/.test(c); }
is_numeric_char("foo1bar") == true
). si desea buscar un carácter numérico/^\d$/.test(c)
, sería una mejor solución. pero de todos modos, no era la pregunta :)EDITAR: La respuesta actualizada de Blender es la respuesta correcta aquí si solo está verificando un solo carácter (es decir
!isNaN(parseInt(c, 10))
). Mi respuesta a continuación es una buena solución si desea probar cadenas completas.Aquí está la
isNumeric
implementación de jQuery (en JavaScript puro), que funciona con cadenas completas :El comentario de esta función dice:
¡Creo que podemos confiar en que estos muchachos han dedicado bastante tiempo a esto!
Fuente comentada aquí . Discusión súper geek aquí .
fuente
Me pregunto por qué nadie ha publicado una solución como:
con una invocación como:
fuente
Puedes usar esto:
Aquí, lo comparé con el método aceptado: http://jsperf.com/isdigittest/5 . No esperaba mucho, así que me sorprendió bastante cuando descubrí que el método aceptado era mucho más lento.
Lo interesante es que, si bien el método aceptado es una entrada correcta más rápida (por ejemplo, '5') y más lento para incorrecto (por ejemplo, 'a'), mi método es exactamente lo contrario (rápido para incorrecto y más lento para correcto).
Aún así, en el peor de los casos, mi método es 2 veces más rápido que la solución aceptada para la entrada correcta y más de 5 veces más rápido para la entrada incorrecta.
fuente
!!([!0, !0, !0, !0, !0, !0, !0, !0, !0, !0][n]);
Tiene un gran potencial de WTF y funciona bastante bien (falla007
)."length"
(y otros atributos que se encuentran en las matrices) son dígitos: PCreo que es muy divertido encontrar formas de resolver esto. A continuación se muestran algunos.
(Todas las funciones siguientes asumen que el argumento es un solo carácter. Cambie a
n[0]
para aplicarlo)Método 1:
Método 2:
Método 3:
Método 4:
Método 5:
Cadena de prueba:
fuente
true
de los métodos 1, 2, 3 y 5 para" "
.charCodeAt()
comparación, que fue casi 4 veces más rápida, jsperf.com/isdigit3Función simple
fuente
Si está probando caracteres individuales, entonces:
devolverá verdadero o falso dependiendo de si c es un dígito o no.
fuente
Sugiero una expresión regular simple.
Si está buscando solo el último carácter de la cadena:
Y la expresión regular es aún más simple si solo está verificando un solo carácter como entrada:
fuente
La solución más corta es:
También puede aplicar estos:
si desea verificar más de 1 personaje, puede usar las siguientes variantes
Expresión regular:
Comparación:
Comprueba si no es NaN
fuente
fuente
salida sin modo estricto:
salida con modo estricto:
fuente
Tratar:
fuente
Esto parece funcionar:
Enlace estático:
Encuadernación de prototipos:
Verificará caracteres individuales, así como cadenas completas para ver si son numéricos.
fuente
Fuente
fuente
Código fuente
fuente
Puedes probar esto (funcionó en mi caso)
Si desea probar si el primer carácter de una cadena es un int:
Si desea probar si el carácter es un int:
fuente
Esta función funciona para todos los casos de prueba que pude encontrar. También es más rápido que:
fuente
Hasta donde yo sé, la forma más fácil es simplemente multiplicar por
1
:La multiplicación por uno genera un número de cualquier cadena numérica (como solo tiene un carácter, siempre será un número entero de 0 a 9) y un
NaN
para cualquier otra cadena.fuente
Similar a una de las respuestas anteriores, usé
Esta entrada de blog arroja algo más de luz sobre esta verificación si una cadena es numérica en Javascript | Mecanografiado y ES6
fuente
Una solución simple al aprovechar la verificación dinámica de tipos del lenguaje:
ver casos de prueba a continuación
Mostrar fragmento de código
fuente
Solo usa
isFinite
fuente