Образцы для адресов электронной почты и URL

Задача
Вы хотите определить, содержится ли в значении адрес электронной почты или URL.

Решение
Используйте образец необходимого уровня строгости.

Обсуждение
В предыдущих разделах образцы использовались для идентификации таких классов значений, как числа и даты, и надо сказать, что регулярные выражения очень часто применяются именно так. Но вообще сравнение с образцом имеет настолько широкую область возможного применения, что невозможно даже просто перечислить все варианты его использования для проверки корректности данных. Для того чтобы дать общее представление о том, для каких еще типов значений может применяться сравнение с образцом, приведем в этом разделе несколько тестов для адресов электронной почты (email) и URL.

Чтобы проверить, являются ли значения адресами электронной почты, образец должен требовать как минимум наличия символа @, с двух сторон окруженного непустыми строками:

/.@./


Это минимальная проверка. Придумать общий образец, охватывающий все разрешенные значения и отбрасывающий все неразрешенные, нелегко, так что создадим хотя бы образец, налагающий чуть более строгие ограничения.Например, имя пользователя и имя домена должны не просто быть непустыми, а целиком состоять из символов, отличных от @ и пробелов:

/^[^@ ]+@[^@ ]+$/


Кроме того, можно потребовать, чтобы доменное имя состояло как минимум из двух частей, разделенных точкой:

/^[^@ ]+@[^@ .]+\.[^@ .]+/


Чтобы найти значения URL, которые начинаются с указателя протокола http://, ftp:// или mailto:, используйте дизъюнкцию, устанавливающую соответствие с любым из них в начале строки. Такие значения содержат символы слэша, поэтому разумно заключить образец в другие символы, чтобы избежать экранирования слэша символом обратного слэша:

m#^(http://|ftp://|mailto:)#i


Варианты в образце группируются при помощи скобок, так как в противном случае только первый из них оказался бы закрепленным в начале строки посредством ^. Модификатор i, следующий за образцом, обозначает нечувствительность указателя протокола к регистру. Больше образец никаких ограничений не накладывает, разрешая чему угодно следовать за указателем протокола. Если хотите, можете сами выполнить дальнейшее усовершенствование этого образца.
Теги:
импорт, экспорт
Добавлено: 23 Июля 2018 16:53:24 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...