我想使用if语句运行代码,只有当用户键入一个字母或数字。
我可以使用
if(event.keyCode == 48 || event.keyCode == 49 || event.keyCode == 50..) { // run code }
但是有没有更容易的方法来做到这一点?也许一些键码不能在所有的网络浏览器工作?
解决方法
如果要检查字母范围,可以使用大于和小于:
if (event.keyCode >= 48 && event.keyCode <= 57) alert("input was 0-9"); if (event.keyCode >= 65 && event.keyCode <= 90) alert("input was a-z");
要进行更动态的检查,请使用正则表达式:
var inp = String.fromCharCode(event.keyCode); if (/[a-zA-Z0-9-_ ]/.test(inp)) alert("input was a letter,number,hyphen,underscore or space");
有关keyCode属性的信息,请参见MDC documentation,这将解释它与哪个属性及其应用的事件之间的区别。