我试图只在 input type="text"
中允许数字和减号。我只能允许数字,但不能允许减号。我尝试了以下正则表达式以仅允许数字:
/\D/
当我添加减号时,它似乎不起作用:
/-?\D/
(我有问号 (?) 的原因是因为不会总是有减号。)当我尝试向文本字段添加减号时,它不起作用。这是代码:
(我尝试添加一个代码片段,但无法正确编译。)
代码笔
<input id="num" type="text" />
var input = document.getElementById('num');
input.addEventListener("keypress", function(e) {
var keycode = (e.keyCode ? e.keyCode : e.which);
if (/-?\D/.test(String.fromCharCode(keycode))) { // a non–digit was entered
e.preventDefault();
}
});
原文由 Jessica 发布,翻译遵循 CC BY-SA 4.0 许可协议
我建议使用此正则表达式来 匹配有效数字:
并让您在
test
方法中反转逻辑,如下所示:代码笔