Функция проверки валидности e-mail с использованием регулярных выражений RegExp (7.7). Данную функцию можно вставить в Глобальный модуль и пользоваться, например, при вводе или сохранении e-mail.
Исходный код функции:
//***********************************************************************
// глПроверкаEmail()
//
// Функция проверки валидности e-mail с использованием регулярных выражений RegExp.
//
// Параметры:
// _Email — Строка с проверяемым e-mail;
//
// Возвращаемые значения:
// 0 — Некорректный e-mail;
// 1 — Корректный e-mail.
//
Функция глПроверкаEmail(_Email) Экспорт
Если Найти(_Email, » «) > 0 Тогда // Не должно быть пробелов.
Возврат 0;
КонецЕсли;
Истина = —1;
Ложь = 0;
ШаблонEmail = «([a-z0-9_-]+.)*[a-z0-9_-]+@([a-z0-9][a-z0-9-]*[a-z0-9].)+[a-z]{2,4}»; // регулярное выражение соответствует произвольному e-mail адресу
Попытка
RegExp = СоздатьОбъект(«VBScript.RegExp»); // создаем объект для работы с регулярными выражениями.
Исключение
Сообщить(«Не удалось инициализировать VBScript.RegExp! Невозможно выполнить проверку e-mail!», «!»);
Возврат 1;
КонецПопытки;
RegExp.MultiLine = Ложь; // истина — текст многострочный, ложь — одна строка.
RegExp.Global = Истина; // истина — поиск по всей строке, ложь — до первого совпадения.
RegExp.IgnoreCase = Истина; // истина — игнорировать регистр строки при поиске.
RegExp.Pattern = ШаблонEmail; // шаблон (регулярное выражение) для проверки корректности e-mail.
Если RegExp.Test(_Email) = Истина Тогда
Возврат 1;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции //глПроверкаEmail(_Email)




Хороший пример использования регулярных выражений.
спасибо
может чё не так осмыслил, но вроде по этому регэкспу проверку не пройдут
i.o.fam@domain.com
mail@other_domain.com
хотя нет, i.o.fam@domain.com должен прокатить
(4) kittystark,
i.o.fam@domain.com — контроль проходит
mail@other_domain.com — контроль не проходит. Поправлю.
mail@other.domain.com — контроль проходит.
Кстати, вот на этот адрес тоже проверку не пройдет : mail@i.ua
Может вот так нужно?
ШаблонEmail = «([a-z0-9_-]+.)*[a-z0-9_-]+@([a-z0-9_-]{1,}.)+[a-z]{2,4}»;
Даже лучше вот так:
ШаблонEmail = «[A-Za-z0-9]{1}[-_.A-Za-z0-9]*@[A-Za-z0-9]{1}[-._a-z0-9]*[a-z]{2,4}»;
Или даже вот так
ШаблонEmail = «#k8SjZc9Dxk[-a-z0-9!#$%&’*+/=?#k8SjZc9Dxk_`{|}~]+(?:.[-a-z0-9!#$%&’*+/=?#k8SjZc9Dxk_`{|}~]+)*@(?:[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?.)*(?:aero|arpa|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|[a-z][a-z])$»;
🙂
шаблонов в нете для проверки e-mail полно, в чем новизна?
откройте для себя. Там можно найти множество примеров.
М-да… как-то не понял, если честно…
а ЗАЧЕМ?… Именно, как пример внешней компоненты? Так с таким же успехом, можно использовать специальную dll-ку, по проверке… не понял, сорри…