LINUX.ORG.RU

regex


0

0

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

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

★★★★★

Ответ на: Re: regex от aa5779

Re: Re: regex

в том то и дело, что /^[a-z0-9_][a-z0-9_-.]*$/i погоды не меняет; или это php может гадит?

Pi ★★★★★ ()
Ответ на: Re: Re: regex от Pi

Re: Re: Re: regex

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

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

aa5779 ()
Ответ на: Re: Re: Re: regex от aa5779

Re: Re: Re: Re: regex

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

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