2016-11-26 73 views
0

我想验证密码输入字段是否包含特殊字符。 基本上我只是想让字母或 数字 出于某种原因没有检测到像','这样的字符。 C等不允许输入字段中的特殊字符

$('#passcode').on('keypress', function(e) { 
    var key = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
    if (!/^[A-Z0-9]+$/i.test(key)) { 
     e.preventDefault(); 
    } 
}) 

这里是一个小提琴:https://jsfiddle.net/gb5kc12z/

与%或尝试',C,`

+1

我无法重现该问题。当然,我不得不对你正在使用的HTML做一些假设。你没有在你的问题中提供[mcve]。 – Quentin

+1

我很好奇:你是否以纯文本存储密码?因为实际上没有其他理由限制类似密码的输入,并且这个原因不是很好,因为你应该用bcrypt,argon或者PBKDF2来散列你的密码,在这种情况下,什么值都没有区别你的密码。 – Nzall

+0

无法重现您的错误,它对我来说工作正常; +1 @Nzall – Blag

回答

0

我猜你被粘贴在那些特殊字符测试,而不是打字他们?您的代码只会在用户释放键输入字符时进行测试。有关如何在现代浏览器中跟踪输入字段上的所有值更改事件的详细信息,请参阅Best way to track onchange as-you-type in input type="text"?

相关问题