2015-06-01 2 views
-2

Регулярное выражение ниже основано на ответе другого стека ... но мои результаты не совпадают. Специальные символы не проверяются.Специальный символ preg_match

строчные буквы, прописные буквы, цифры и специальный символ.

например: qwertyu1wW является обработка без специального характера

if (!preg_match('/(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}/', $pass)) { 
+0

«Специальный характер» - это не вещь. Вы имеете в виду «пунктуацию»? Если да, то какие знаки пунктуации в частности? – deceze

+0

@karthikmanchala спасибо – acctman

+0

Регулярное выражение ищет только строчную букву '[az]', прописную букву '[AZ]' и число '\ d' для строки длиной не менее 8 символов (' { 8,} '). Я не уверен, для чего нужен последний '.', может быть, потребуется также указать период? – chris85

ответ

1

для "ничего, кроме цифры или буквы"

Используйте следующее:

if (!preg_match('/(?=.*[\W_-])(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}/', $pass)) { 
        ^^^^^^^^^^ 
Смежные вопросы