ajs*_*sie 61 javascript jquery
我想只在用户输入字母或数字时才使用if语句来运行代码.
我可以用
if(event.keyCode == 48 || event.keyCode == 49 || event.keyCode == 50..) {
// run code
}
Run Code Online (Sandbox Code Playgroud)
有更简单的方法吗?也许某些密钥代码在所有Web浏览器中都不起作用?
And*_*y E 130
如果要检查一系列字母,可以使用大于和小于:
if (event.keyCode >= 48 && event.keyCode <= 57)
alert("input was 0-9");
if (event.keyCode >= 65 && event.keyCode <= 90)
alert("input was a-z");
Run Code Online (Sandbox Code Playgroud)
要进行更动态的检查,请使用正则表达式:
var inp = String.fromCharCode(event.keyCode);
if (/[a-zA-Z0-9-_ ]/.test(inp))
alert("input was a letter, number, hyphen, underscore or space");
Run Code Online (Sandbox Code Playgroud)
请参阅该属性的MDC文档,该文档keyCode解释了该which属性与属性之间的区别以及它们适用于哪些事件.
Tim*_*own 24
首先,如果您这样做,请确保它在keypress事件中,这是您可以可靠地获取有关用户键入的字符的信息的唯一事件.然后我会使用Andy E建议的方法:
document.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
if (/[a-z0-9]/i.test(charStr)) {
alert("Letter or number typed");
}
};
Run Code Online (Sandbox Code Playgroud)
如果你想检查退格,我会使用该keydown事件并检查keyCode8,因为几个浏览器(包括Chrome)不会keypress为退格键触发事件.
Gib*_*olt 18
event.key和现代JS!没有数字代码了.你可以直接检查密钥.
const key = event.key.toLowerCase();
if (key.length !== 1) {
return;
}
const isLetter = (key >= "a" && key <= "z");
const isNumber = (key >= "0" && key <= "9");
if (isLetter || isNumber) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)
你也可以使用一个简单的正则表达式.^$确保1个字符,i忽略大小写
/^[a-z0-9]$/i.test(event.key)
Run Code Online (Sandbox Code Playgroud)
或单独:
const isLetter = /^[a-z]$/i.test(event.key)
const isNumber = /^[0-9]$/i.test(event.key)
Run Code Online (Sandbox Code Playgroud)
if(event.keyCode >= 48 && event.keyCode <= 90) {
//the key pressed was alphanumeric
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73749 次 |
| 最近记录: |