我有一个Javascript函数,只允许输入中的数字。
<input name="onlynumbers" type="text" onkeypress="return isNumber(event);">
这是我的Javascript功能:
function isNumber(e) {
k = (document.all) ? e.keyCode : e.which;
if (k==8 || k==0) return true;
search = /[0-9]/;
n = String.fromCharCode(k);
return search.test(n);
}
但现在我需要允许数字和“K”字符。我试图修改它,但我无法得到它。
请你帮帮我吗?
谢谢! :)
答案 0 :(得分:1)
将K添加到搜索中:
search = /[0-9K]/;
如果你还需要小写k:
search = /[0-9kK]/;
答案 1 :(得分:0)
在获取数字击键方面,我一直在使用这个我最初没有创建的功能,但是找到了某个地方:
function blockNonnumericKeystrokes(e) {
if (e.keyCode == '13') {
prorate();
return;
}
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
}
答案 2 :(得分:0)
您可以使用此正则表达式/\d+|k/i
- 正则表达式接受k
和K
,如果您只需要数字和大写K
,则删除incase sensitive flag i
:/\d+|k/
属性e.key
是按下的键
document.querySelector('[name="onlynumbers"]').addEventListener('keypress', function(e) {
if (!/\d+|k/i.test(e.key)) e.preventDefault();
});
&#13;
<input name="onlynumbers" type="text">
&#13;