我使用此正则表达式[\d\w#,()."\/\-\s]
仅允许使用字母数字和# , . ( ) _ - / "
。
但是当我尝试使用键码时,它允许%
和单引号('
)为什么会这样?
这是我现在正在尝试的内容。 http://jsfiddle.net/Fn9cy/78/
答案 0 :(得分:0)
很简单,因为%的键码是37
。就像左箭头按钮一样,它也是键码37
。非ACSII密钥的虚拟密钥代码与ASCII代码重叠。
答案 1 :(得分:0)
使用此
(event.keyCode == 37 && key != '%') || (event.keyCode == 39 && key != '\'')
而不是
event.keyCode == 37 || event.keyCode == 39
答案 2 :(得分:0)
使用keyCode = 37
String.fromCharCode(event.keyCode)
添加例外
if (String.fromCharCode(event.keyCode) !== '%' &&
(event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 39 || englishAlphabetAndWhiteSpace.test(key)))