una ultimo recorrer palabras numeros extraer espacios entre eliminar ejemplo cortar caracteres caracter cadena buscar javascript numbers digits

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;