2016-11-26 75 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"?

相關問題