# Sitego (10.06.2016 / 11:40)Можно ещё короче
ПеревозЧЕГ, самый короткий будет так, работоспособность проверена
preg_match("|^\D[a-z0-9\._-]{3,19}$|i",$login))
preg_match('|^\D[a-z\d\._-]{3,19}$|i', $login) # Sitego (10.06.2016 / 11:40)Можно ещё короче
ПеревозЧЕГ, самый короткий будет так, работоспособность проверена
preg_match("|^\D[a-z0-9\._-]{3,19}$|i",$login))
preg_match('|^\D[a-z\d\._-]{3,19}$|i', $login) неможно.
первый символ допускаешь любой кроме цифр.
ключевой момент я выделил
# ramzes (10.06.2016 / 12:14)Так и есть - первый символ не цифра.
неможно.
первый символ допускаешь любой кроме цифр.
ключевой момент я выделил
if (!preg_match('|^[^\d@#][a-z\d\._-]{3,19}$|i', $login)) # ДоХтор (10.06.2016 / 00:29)Все работает, только в конце добавил $. Капец, изначально еще мои регулярки должны были работать, если бы я знак ! поставил. Я про условие не так подумал. Код в джоне не так воспринял. Там методом от противного регулярное составлено выходит. Не зря говорят утро вечера мудренее.
if (!preg_match('~^[^\d][a-z\d\._-]+~i', $login)) {
$error['login'][] = 'Используйте буквы англ. языка и цифры.';
}
ПеревозЧЕГ, ещё обрати внимание на запрет символов начала логина
# ДоХтор (10.06.2016 / 12:16)не совсем. надо явно назначить допустимые.
Так и есть - первый символ не цифра.
добавление:
Хотя да, ты прав - при таком шаблоне логин может начинаться, например с собаки @ и т.п.
Но тогда надо в шаблоне явно запрещать символы, с которых не
# ramzes (10.06.2016 / 12:58)Мне пока не понятно, как это совместить.
не совсем. надо явно назначить допустимые.
я тысячу символов найду которые ты не укажешь, начиная с \ или %
а это ооочень плохо
я же написал выше регулярку
# ДоХтор (10.06.2016 / 12:49)да, рамзес выше написал, плюс я сам додумал все. Как думаете email стоит регуляркой проходить?
ПеревозЧЕГ, ещё обрати внимание на запрет символов начала логина
ПеревозЧЕГ, в любом случае, но там вроде все просто