Regex para comprobar si una cadena contiene solo números [duplicado]
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?
Aceptado
var reg = /^\d+$/;
Deberías hacerlo. El original coincide con todo lo que consta de exactamente un dígito.
Como dijiste, quieres que el hash contenga solo números.
const reg = new RegExp('^[0-9]+$');
o
const reg = new RegExp('^\d+$')
\d
y [0-9]
ambos significan lo mismo. El + usado significa que se busca uno o más de [0-9].
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*$/
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"));