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

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


当前回答

你需要*,所以它表示“零或多个前一个字符”,这应该做到:

var reg = new RegExp('^\\d*$');

其他回答

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

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

or

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

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

var reg = /^\d+$/;

应该这么做。原始值匹配任何恰好包含一个数字的值。

为什么不用这样的东西:

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

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

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

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

如果你想用带符号的值匹配数字,你可以使用:

var reg = new RegExp('^(\-?|\+?)\d*$');

它将验证格式的数字:+1,-1,1。