javascript - ultimo - Compruebe si la cadena contiene solo dígitos
recorrer un string javascript (9)
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 utilizando el operador de propagación , y luego utiliza el método every()
para probar si todos los elementos (caracteres) de la matriz están incluidos en la cadena de dígitos ''0123456789''
:
const digits_only = string => [...string].every(c => ''0123456789''.includes(c));
console.log(digits_only(''123'')); // true
console.log(digits_only(''+123'')); // false
console.log(digits_only(''-123'')); // false
console.log(digits_only(''123.'')); // false
console.log(digits_only(''.123'')); // false
console.log(digits_only(''123.0'')); // false
console.log(digits_only(''0.123'')); // false
console.log(digits_only(''Hello, world!'')); // false
Quiero comprobar si una string
contiene solo dígitos. Utilicé esto:
var isANumber = isNaN(theValue) === false;
if (isANumber){
..
}
Pero se dio cuenta de que también permite +
y -
. Básicamente, quiero asegurarme de que una input
contenga SOLAMENTE dígitos y no otros caracteres. Como +100
y -5
son ambos números, isNaN()
no es el camino correcto. Tal vez una expresión regular es lo que necesito? ¿Algun consejo?
Aquí hay una solución sin usar expresiones regulares:
function onlyDigits(s) {
for (let i = s.length - 1; i >= 0; i--) {
const d = s.charCodeAt(i);
if (d < 48 || d > 57) return false
}
return true
}
donde 48 y 57 son los códigos de caracteres para "0" y "9", respectivamente.
Bueno, puedes usar el siguiente regex:
^/d+$
Esto es lo que quieres
function isANumber(str){
return !//D/.test(str);
}
Si desea admitir incluso valores flotantes (valores separados por puntos), puede usar esta expresión:
var isNumber = /^/d+/./d+$/.test(value);
qué tal si
var isnum = /^/d+$/.test(val);
String.prototype.isNumber = function(){return /^/d+$/.test(this);}
console.log("123123".isNumber()); // outputs true
console.log("+12".isNumber()); // outputs false
function isNumeric(x) {
return parseFloat(x).toString() === x.toString();
}
Aunque esto devolverá false
en cadenas con ceros iniciales o finales.
string.match(/^[0-9]+$/) != null;