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”都是假的。我想检查哈希是否只包含数字。我错过什么了吗?
当前回答
只有数字的正则表达式(已更新)
var reg = new RegExp('[^0-9]','g');
其他回答
也许它有用:
let a = "1234"
parseInt(a) == a // true
let b = "1234abc"
parseInt(b) == b // false
var reg = /^\d+$/;
应该这么做。原始值匹配任何恰好包含一个数字的值。
你需要*,所以它表示“零或多个前一个字符”,这应该做到:
var reg = new RegExp('^\\d*$');
如果你想用带符号的值匹配数字,你可以使用:
var reg = new RegExp('^(\-?|\+?)\d*$');
它将验证格式的数字:+1,-1,1。
在输入时,如果你想过滤掉其他字符,只显示输入字段中的数字,你可以在keyup上替换字段的值:
var yourInput = jQuery('#input-field');
yourInput.keyup(function() {
yourInput.val((yourInput.val().replace(/[^\d]/g,'')))
})