2012-04-28 47 views
0

我正在使用密碼,並希望讓用戶創建複雜的密碼。我使用jQuery來檢查密碼是否足夠長以及它的強度取決於使用的字符。不過,無法弄清楚如何使用戶與沒有重複字符創建密碼,所以他不能讓像「111111111111111111111111」或「1qAz1qAz1qAz」等密碼 我的代碼是在這裏:提前jquery/javascript - 檢查輸入(密碼)是否有一些重複的字符

$("#new_pass").keyup(function() { 
    var newpass = $(this).val(); 
    var chars = 0; 
    if((/[a-z]/).test(newpass)) chars += 26; 
    if((/[A-Z]/).test(newpass)) chars += 26; 
    if((/[0-9]/).test(newpass)) chars += 10; 
    if((/[^a-zA-Z0-9]/).test(newpass)) chars += 32; 
    var strength = Math.pow(chars, newpass.length) 
     alert(strength) 
} 

感謝。

+0

1.不要試圖重新發明輪子 - 安全性是_hard_ 2.密碼強度檢查應該在服務器端完成,以防止用戶簡單地將您的代碼修補掉。 – Alnitak 2012-04-28 22:29:53

+0

對我來說,在服務器端檢查它是顯而易見的。我會,但jQuery版本應該是第一步.. – Kalreg 2012-04-28 22:34:31

回答

2

也許你可以使用一些簡單的像這樣:

/(\w+)(?=\1)/g 

這一個或多個單詞字符匹配,則檢查是否他們後面是精確的字符串。

基本試驗(在CoffeeScript中)

pattern = /(\w+)(?=\1)/g 
console.log pattern.test("1qAz1qAz1qAz") 
console.log pattern.test("111111111111111") 
console.log pattern.test("abcdefg")   
console.log pattern.test("abccdefg") 

輸出:

true 
true 
false 
true 

作爲一個側面說明,大小寫做的事情,所以例如:

pattern.test("abcCdefg") 

會實際上返回虛假

+0

這正是我所期待的。謝謝。 – Kalreg 2012-04-28 23:13:57

相關問題