| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Регулярные выражения |
| Автор: +++ 3.8.2004, 00:39 |
| Как на регулярных выражениях записывается пробел??? и знак переноса строки \n???? и сам символ "-"???? ===================================== [a-zA-Z] - это я только буквы разрешил, а как сюда еще добавить пробел, чтобы можно было тоже разрешить??? скока инфы не читал про пробел все молчат и еще посмотрите правильно ли я проверяю e-mail на корректность??? ======================================== $proverka = ereg ("[0-9a-zA-Z_]+@[0-9a-zA-Z^\\.]+\\.[a-zA-Z]{2,4}", $email); if ($proverka==false) { echo 'Вы некорректно заполнили поле E-mail'; } ========================================= Кстати почему используя эту проверку на e-mail такой адрес проходит: [email protected] а такой нет: [email protected] Т.е. в имени почты перед @ можно использовать знак "-" а после @ в доменном имени почему-то это запрещено хотя все тоже???? И еще.. почему можно написать и так вот и кстати тоже проходит проверку: [email protected] ведь я четко указал что [a-zA-Z]{2,4} т.е. от 2 до 4 символов??? а я тут целую кучу их поставил вместо 4.. но тоже проходит через проверку ======================================== Заранее благодарю за объяснения моих глупых вопросов. |
| Автор: IZ@TOP 3.8.2004, 01:04 | ||||
| Все пробельные символы, в том числе и знак переноса строки и возврата каретки обазначаются как \s. Почитай в FAQ, там немного про реги есть. Проверка email'a:
По этой проверке пройдут адреса следующих типов:
|
| Автор: Guest 3.8.2004, 01:26 |
| Классная проверка ========================== "^[a-zA-Z0-9_\\.\\-]*[^\\.\\-]@[a-zA-Z0-9_\\.\\-]*[^\\.\\-]\\.[a-zA-Z]{2,4}$" =========================== Никогда б до такой не додумался кстати мне не совсем понятно почему вы используете *[^\\.\\-] после имени ящика т.е. тем что перед @ и после доменного имени т.е. перед точкой .ru (например). Я то понял что без *[^\\.\\-] работать не будет.. но все-таки странные эти рег. выражения никак в них толком не въеду |
| Автор: IZ@TOP 3.8.2004, 09:34 |
| Значит так, объясняю: 1) ^ - означает начало строки. 2) [a-zA-Z0-9_\\.\\-]* Означает любое количество символов от A до Z, цифр, знаков "." и дефиса. 3) [^\\.\\-]Означает отрицание знаков "." и дефиса перед знаком at (@). 4) @ знак at (@) 5) [a-zA-Z0-9_\\.\\-]* см. п2. [^\\.\\-] см п3. Примечание: отрицает идущие перед .dom знаки "." и дефиса. \\. Точка. [a-zA-Z]{2,4} 2 - 4 буквы от A до Z. $Конец строки. |