Я хочу проверить имена пользователей в PHP и проверить их с помощью регулярного выражения. Они должны содержать как минимум 2 «настоящих» символа, например A
, Ä
, s
, 1
или же 5
, но некоторые другие, как .
или же _
или пробел тоже должен быть разрешен. Положение обязательных символов не имеет значения.
Это то, что я имел до сих пор, и, к сожалению, также позволяет ...
как имя пользователя:
preg_match('/^[\pL\pN\s-+_.]+$/u', $value)
Я хочу разрешить только определенные символы. нет <
, или же #
например.
Как я могу это сделать?
Посмотрим…
^(?:.*?[\p{L}\p{N}]){2}
^[-+.\w ]+$
Давайте объединим это вместе, и мы получим:
^(?=(?:.*?[\p{L}\p{N}]){2})[-+.\w ]+$
Я использовал смотреть вперед для части, которая проверяет, есть как минимум 2 обязательных символа, и просто поместите все остальное в основную часть шаблона. Вместе это позволяет проверить два разных условия для одного и того же ввода.
Других решений пока нет …