正则表达式与密钥代码javascript

时间:2014-03-13 09:00:42

标签: jquery regex

我使用此正则表达式[\d\w#,()."\/\-\s]仅允许使用字母数字和# , . ( ) _ - / "

但是当我尝试使用键码时,它允许%和单引号(')为什么会这样?

这是我现在正在尝试的内容。 http://jsfiddle.net/Fn9cy/78/

3 个答案:

答案 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))) 

JSFiddle