2013-08-28 6 views
1

У меня есть форма, которая использует Javascript для определения начальных значений для целей маркировки, для кросс-совместимости с IE, Firefox и Chrome. Чтобы это правильно работало, JS меняет тип ввода в зависимости от того, что было или не было введено пользователем.Правильные пароли

Затем у меня есть проверка формы PHP, которая гарантирует, что пароль придерживается положений, в которых он должен содержать хотя бы одно число, но каждый раз, когда я отправляю форму с паролем, который должен проверять, он вызывает ошибку, что мой пароль должно содержать хотя бы одно число.

Соответствующая форма ввода:

<input type="text" name="password" class="reg_pass" value="Password" 
onfocus="if (value == 'Password') { value = ''; } setAttribute('type', 'password');" 
onblur="if (value == '') { value='Password'; } 
if (value !== '' && value == 'Password') { setAttribute('type', 'text'); }" /> 

Соответствующие PHP проверки используются:

elseif (!preg_match("/[A-Z][a-z][0-9]+/", $password)) { 

    $msg = "Password must contain at least one number"; 

} 

Примечание:

Я использовал print_r ($ _ POST), и когда представляется, пароль post variable отображает введенный пароль.

Я искал несколько часов на решении, но безрезультатно.

Любые идеи?

ответ

0

Прошло ли это подтверждение? В настоящее время ваше регулярное выражение будет принимать только пароль со следующими характеристиками: 1-й символ должен быть заглавной буквой, 2-й символ должен быть строчной буквой, а затем 1 или более цифр.

Попробуйте что-то больше, как это:

/[A-Za-z0-9]+/ 

Вы также можете сделать:

/[a-z0-9]+/i 

Флаг i дает ему прецедентное нечувствительность.

Если вы хотите, чтобы содержать по крайней мере один номер, вы можете сделать:

/\d/ 

Вы можете одновременно запускать как спички, один за другим.

+0

благодарит за помощь! это сработало – Charlieabee

0

Ваша форма регулярного выражения неверна. Я не совсем уверен, что один вы поставите будет соответствовать, но я уверен, что это то, который вы хотите:

\d+ 

Все, что делает соответствует любой цифре (на самом деле + не может быть необходимы либо), поэтому, если совпадений нет, вы можете быть уверены, что цифр нет.

Смежные вопросы