hash = window.location.hash.substr(1);
var reg = new RegExp('^[0-9]$');
console.log(reg.test(hash));

“123”和“123f”都是假的。我想检查哈希是否只包含数字。我错过什么了吗?


当前回答

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"));

其他回答

也许它有用:

let a = "1234"
parseInt(a) == a // true
let b = "1234abc"
parseInt(b) == b // false

为什么不用这样的东西:

$.isNumeric($(input).val())

jquery测试,和最常见的情况下检查

我看到你已经得到了很多答案,但如果你正在寻找一个正则表达式,可以匹配整数和浮点数,这一个将为你工作:

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

如果你只需要正整数而不需要前导零(例如。"0001234"或"00"):

var reg = /^(?:[1-9]\d*|\d)$/;

只有数字的正则表达式(已更新)

 var reg = new RegExp('[^0-9]','g');