认识特殊键字符为无kycode

问题描述:

如果碰到退格键,例如控制台显示keyVal一个空字符串,但那是误导,因为keyVal.length等于,有一个隐藏的字符认识特殊键字符为无kycode

element.on('keydown',function(e){ 
    var keyVal = String.fromCharCode(e.keyCode); 
}); 

是它可能检测到这些不输入值的特殊键?可能没有列出并检查他们的关键代码。或者至少是一种有效的方式,而忽略任何密钥的风险很低。

+0

您可以结合使用['keypress'(http://api.jquery.com/keypress/)事件与[' event.charCode'](https://developer.mozilla.org/en-US/docs/Web/API/event.charCode)属性。虽然现在后者即将被弃用,但大多数浏览器仍然支持它。如果它可打印,它将返回按下的Unicode值。请注意,在Webkit浏览器中,如果按下的键不可打印,则“keypress”不会触发。 – hindmost 2014-11-21 13:19:26

您可以在String.fromCharCode(e.keyCode)上添加正则表达式。

element.on('keydown',function(e){ 
    var keyVal = String.fromCharCode(e.keyCode).replace(/[^\w\s\d]/g,''); 
}); 

应该替换任何字符不是一个数字,字母或空间

+0

谢谢你的帮助。一般来说它显示出很好的结果,但不幸的是它会失败,像'''',''''这样的字符可以做输入值。它可能在utf-8中有其他的。 http://jsfiddle.net/0b581Lrz/ – kidwon 2014-11-21 13:01:27