Сообщение от 2Fake
Моя регулярка меня устраивает больше чем твоя, ведь обязует начало и конец логина с латинского символа или цифры, а также возможность использовать символы _.- внутри.
Еще бы можно было добавить что-то вроде {3,16} для ограничения длины логина.
Твоя:
/^[a-z0-9]+[a-z0-9_.-]*$/i
login - GOOD
my.login - GOOD
login. - BAD
my--login - BAD
_login - GOOD
Моя:
/^[a-z0-9]+([_.-])[a-z0-9]+$/i
login - GOOD
my.login - GOOD
login. - GOOD
my--login - GOOD
_login - GOOD
|
Что-то ты намудрил.
У тебя почти все BAD
Из-за того что у тебя есть nested result - то что в скобках.
И оно может вернуть true когда остальное нет. Будь осторожен тут.
Вот протестируй тут:
http://regexpal.com/
Если всё выделил жёлтым - значит валидно.
login - BAD
my.login - GOOD
login. - BAD
my--login - BAD
_login - BAD
Мой же как раз требует начало как и твой (латиница или цифра) но ему пофиг что будет далее, т.к. конец не важен.
Если тебе нужно начало и конец латиница или цифра, и что угодно посередине, и ограничение от 4 до 14 символов:
/^[a-z0-9][a-z0-9_.-]{2,14}[a-z0-9]$/i
И результат такой:
login
my.login
login.
my--login
_login
Ты что-то конкретно там намудрил. Прежде чем утверждать что я что-то сделал не так, убедись что ты сам не намахнулся где-то.