У меня есть скрипт проверки пароля в PHP, который проверяет несколько различных регулярных выражений и выдает уникальное сообщение об ошибке, в зависимости от того, какое из них не удалось.Вот массив регулярных выражений и сообщений об ошибках, которые выдаются при сбое сопоставления:
array(
'rule1' => array(
'/^.*[\d].*$/i',
'Password must contain at least one number.'
),
'rule2' => array(
'/^.*[a-z].*$/i',
'Password must contain at least one lowercase letter'
),
'rule3' => array(
'/^.*[A-Z].*$/i',
'Password must contain at least one uppercase letter'
),
'rule4' => array(
'/^.*[~!@#$%^&*()_+=].*$/i',
'Password must contain at least one special character [~!@#$%^&*()_+=]'
)
);
По какой-то причине, независимо от того, что я проверяю, правило «Специальные символы» не выполняется.Я предполагаю, что это проблема с выражением.Если есть лучший (или правильный) способ написания этих выражений, я весь в ушах!