2012-04-28 2 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

+0

для меня очевидно проверить это на сервере. и я буду, но версия jquery должна быть первым шагом. – Kalreg

ответ

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") 

Would фактически возвращают false.

+0

, что именно то, что я искал. Спасибо. – Kalreg