Показать сообщение отдельно
Старый 06.02.2013, 22:36   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: JavaScript: Перехват Submit

Сообщение от 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
Ты что-то конкретно там намудрил. Прежде чем утверждать что я что-то сделал не так, убедись что ты сам не намахнулся где-то.
(Offline)
 
Ответить с цитированием