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

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


当前回答

如您所说,您希望哈希只包含数字。

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

or

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

\d和[0-9]都是同一个意思。 使用+表示搜索[0-9]中的一个或多个。

其他回答

也许它有用:

let a = "1234"
parseInt(a) == a // true
let b = "1234abc"
parseInt(b) == b // false
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"));

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

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

这个函数也允许有符号和浮点数或空字符串:

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

如果你不想让空字符串使用这个:

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

如您所说,您希望哈希只包含数字。

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

or

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

\d和[0-9]都是同一个意思。 使用+表示搜索[0-9]中的一个或多个。