# 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 стоит регуляркой проходить?
ПеревозЧЕГ, в любом случае, но там вроде все просто