2013-07-11 3 views
-7

Я совершенно не знаком с PHP. Мне нужна помощь при написании регулярного выражения, которое проверяет пароль. Пароль должен содержать не менее 8 символов, начинаться с буквы, заканчиваться цифрой и нечувствительно к регистру. Символы между первым и последним могут быть цифрой, подчеркиванием или символом.PHP regex для проверки пароля

Любая помощь была бы принята с благодарностью.

+3

Посмотрите на [этой] (http://stackoverflow.com/q/11873990/2493918) вопрос. –

+0

какие символы приемлемы для средних символов? – Legion

+4

Почему вы заставляете письмо первым персонажем? И ограничение набора символов, который я могу использовать для букв, цифр, символов подчеркивания и символов? Могу ли я использовать символы UTF-8? –

ответ

0

Посмотрите на функцию preg_match() PHP в manual.

Быстрый пример:

<?php 
// Check if the string is at least 8 chars long 
if (strlen($password) < 8) 
{ 
    // Password is too short 
} 


// Make the password "case insensitive" 
$password = strtolower($password); 


// Create the validation regex 
$regex = '/^[a-z][\[email protected]#$%]+\d$/i'; 

// Validate the password 
if (preg_match($regex, $password)) 
{ 
    // Password is valid 
} 
else 
{ 
    // ... not valid 
} 

­

Regex Explanation: 
^   => begin of string 
    [a-z]  => first character must be a letter 
    [\[email protected]#$%]+ => chars in between can be digit, underscore, or symbol 
    \d   => must end with a digit 
    $   => end of string 
    /i   => case insesitive 
+1

, пожалуйста, не делайте бит strtolower() - это сделает ваши пароли гораздо менее безопасным. – Spudley

+0

@Spudley True, просто включил его, потому что пользователь2573918 попросил его. Но это правда, что это проблема безопасности. –

2

/^[A-Za-z][0-9[:punct:]]{6,}[0-9]$/ должен работать

это говорит:

  • первый символ должен быть буквой
  • средние символы должны быть цифрой или символом подчеркивания (в комплекте)
  • должно быть по крайней мере 6 средние персонажи
  • последнему символу должна быть цифра
Смежные вопросы