LINUX.ORG.RU

regex


0

0

нужно тестировать имя пользователя почты /всё, что до 'эты'/ на корректность. раньше /^[a-z0-9_][a-z0-9_-]*$/i обходились, а терь стрельнуло, что было бы не плохо точку добавить /напр, vasia.pupkin/.

точка - не простой символ в регвыражениях, а я в этом деле, признаться, очень не силён. помогите. спасибо.

★★★★★

Ответ на: комментарий от Pi

Это потому, что "-" как раз имеет специальное значение внутри [...]. Это обозначение диапазона, так что [_-.] соответствует всем символам от подчеркивания до точки. Причем поскольку подчеркивание имеет больший код, чем точка, скорее всего, в результате получается пустое множество символов.

А для того, чтобы "-" внутри [] было просто "-", оно должно быть первым или последним символом, иными словами должно быть так: [a-z0-9_.-] или так: [-a-z0-9_.]

aa5779
()
Ответ на: комментарий от aa5779

спасибо огромное, как-то не подумал про это тире...

Pi ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.