hash = window.location.hash.substr(1);
var reg = new RegExp('^[0-9]$');
console.log(reg.test(hash));
“123”和“123f”都是假的。我想检查哈希是否只包含数字。我错过什么了吗?
hash = window.location.hash.substr(1);
var reg = new RegExp('^[0-9]$');
console.log(reg.test(hash));
“123”和“123f”都是假的。我想检查哈希是否只包含数字。我错过什么了吗?
当前回答
简单的Regex javascript
var cnpj = "12.32.432/1-22";
var rCnpj = cnpj.replace(/\D/gm,"");
console.log(cnpj);
*结果:
1232432122
只检查数字:
if(rCnpj === cnpj){
return true;
}
简单的例子
if("12.32.432/1-22".replace(/\D/gm,"").length > 0){
console.log("Ok.");
}
其他回答
如果你只需要正整数而不需要前导零(例如。"0001234"或"00"):
var reg = /^(?:[1-9]\d*|\d)$/;
^[0-9]$
...是一个匹配任何单个数字的正则表达式,因此1将返回true,而123将返回false。
如果你加上量词*,
^[0-9]*$
表达式将匹配任意长度的数字字符串,123将返回true。(123f仍然返回false)。
请注意,从技术上讲,一个空字符串是一个长度为0的数字字符串,因此它将使用^[0-9]*$返回true。如果您只想接受包含1个或多个数字的字符串,请使用+而不是*
^[0-9]+$
正如其他人所指出的那样,有很多方法可以实现这一点,但我认为应该指出,原始问题中的代码只需要一个额外的字符就可以正常工作。
你需要*,所以它表示“零或多个前一个字符”,这应该做到:
var reg = new RegExp('^\\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("mf@tl.ff"));
alert(validation.isSame("sf","sf"));
如果你想用带符号的值匹配数字,你可以使用:
var reg = new RegExp('^(\-?|\+?)\d*$');
它将验证格式的数字:+1,-1,1。