Regex para comprobar si una cadena contiene solo números [duplicado]

Resuelto Johan asked hace 12 años • 21 respuestas
hash = window.location.hash.substr(1);
var reg = new RegExp('^[0-9]$');
console.log(reg.test(hash));

Me sale falso tanto "123"en como "123f". Me gustaría comprobar si el hash sólo contiene números. ¿Me he perdido algo?

Johan avatar Jan 26 '12 05:01 Johan
Aceptado
var reg = /^\d+$/;

Deberías hacerlo. El original coincide con todo lo que consta de exactamente un dígito.

Mike Samuel avatar Jan 25 '2012 22:01 Mike Samuel

Como dijiste, quieres que el hash contenga solo números.

const reg = new RegExp('^[0-9]+$');

o

const reg = new RegExp('^\d+$')

\dy [0-9]ambos significan lo mismo. El + usado significa que se busca uno o más de [0-9].

shadyabhi avatar Jan 25 '2012 22:01 shadyabhi

Este también permitirá números flotantes y con signo o cadenas vacías:

var reg = /^-?\d*\.?\d*$/

Si no desea permitir una cadena vacía, use esta:

var reg = /^-?\d+\.?\d*$/
Setthase avatar Jun 05 '2013 23:06 Setthase
var validation = {
    isEmailAddress:function(str) {
        var pattern =/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
        return pattern.test(str);  // returns a boolean
    },
    isNotEmpty:function (str) {
        var pattern =/\S+/;
        return pattern.test(str);  // returns a boolean
    },
    isNumber:function(str) {
        var pattern = /^\d+\.?\d*$/;
        return pattern.test(str);  // returns a boolean
    },
    isSame:function(str1,str2){
        return str1 === str2;
    }
};   

alert(validation.isNotEmpty("dff"));
alert(validation.isNumber(44));
alert(validation.isEmailAddress("[email protected]"));
alert(validation.isSame("sf","sf"));
Dastagir avatar Apr 17 '2014 14:04 Dastagir