Форумы портала PHP.SU » PHP » Регулярные выражения » Проверка пароля

Страниц (1): [1]
 

1. Artix - 28 Ноября, 2018 - 17:20:12 - перейти к сообщению
Всем привет, (?=.*[a-z]) как я понял при помощи утверждения (?= сравниваем с шаблоном [a-zA-Z0-9] на наличие данных символов, а что делает .* ?
CODE (htmlphp):
скопировать код в буфер обмена
  1. /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{6,32}$/
2. Строитель - 28 Ноября, 2018 - 17:56:49 - перейти к сообщению
Artix пишет:
а что делает .*
То же, что и за пределами вперёд смотрящей проверки: . - совпадение с почти любым символом; * - ноль и более вхождений.
3. Artix - 28 Ноября, 2018 - 18:30:03 - перейти к сообщению
Строитель пишет:
. - совпадение с почти любым символом; * - ноль и более вхождений

* =Ноль или более символов
+ =Одно или более символов

Я походу не правильно понимаю роль звёздочки в данном примере
4. Строитель - 28 Ноября, 2018 - 22:52:47 - перейти к сообщению
Artix пишет:
Я походу не правильно понимаю роль звёздочки в данном примере

На примере должно быть понятней:
PHP:
скопировать код в буфер обмена
  1. $str = '';
  2. // 1 - потому что * допускает 0 символов в строке
  3. var_dump( preg_match('~.*~', $str) );
  4.  
  5.  
  6. $str = '';
  7. // 0 - потому что + требует хотя бы 1 символ в строке
  8. var_dump( preg_match('~.+~', $str) );

 

Powered by ExBB FM 1.0 RC1