Функция проверки валидности e-mail с использованием регулярных выражений RegExp (7.7)

30.10.11

Разработка - Универсальные функции

Функция проверки валидности e-mail с использованием регулярных выражений RegExp (7.7). Данную функцию можно вставить в Глобальный модуль и пользоваться, например, при вводе или сохранении e-mail.

Функция проверки валидности 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)

См. также

Библиотека процедур и функций для технологической платформы "1С: Предприятие 7.7"

Универсальные функции Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    631    8    user706545_kseg1971    0    

4

1С 7.7 и новый 1С:Контрагент

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    1802    zhenyat    7    

6

Печать таблицы значений в 1С 7.7 при отладке

Универсальные функции Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    4371    Zoltan_Black    11    

2

Установка принтера по умолчанию для 1С 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13259    4    alsen    3    

3

Формирование строки json в 1С: 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10045    malovandrey    1    

17

Как создать индикатор в 1С:Предприятии 7.7

Универсальные функции Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    18658    2    HAMMER_59    6    

2
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. zk96 30.10.11 19:46 Сейчас в теме
Хороший пример использования регулярных выражений.
3. TrinitronOTV 14 31.10.11 08:39 Сейчас в теме
4. kittystark 15 03.11.11 11:01 Сейчас в теме
может чё не так осмыслил, но вроде по этому регэкспу проверку не пройдут
i.o.fam@domain.com
mail@other_domain.com
6. zaursoft 19 03.11.11 13:03 Сейчас в теме
(4) kittystark,
i.o.fam@domain.com - контроль проходит
mail@other_domain.com - контроль не проходит. Поправлю.
mail@other.domain.com - контроль проходит.
5. kittystark 15 03.11.11 12:56 Сейчас в теме
хотя нет, i.o.fam@domain.com должен прокатить
7. zk96 07.11.11 15:21 Сейчас в теме
Кстати, вот на этот адрес тоже проверку не пройдет : 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}";
8. zk96 07.11.11 18:44 Сейчас в теме
Или даже вот так
ШаблонEmail = "^[-a-z0-9!#$%&'*+/=?^_`{|}~]+(?:\.[-a-z0-9!#$%&'*+/=?^_`{|}~]+)*@(?:[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])$";
:-)
9. pumbaE 09.11.11 17:06 Сейчас в теме
шаблонов в нете для проверки e-mail полно, в чем новизна?
Regexp откройте для себя. Там можно найти множество примеров.
10. alexm73 16.11.11 19:34 Сейчас в теме
М-да... как-то не понял, если честно...
а ЗАЧЕМ?... Именно, как пример внешней компоненты? Так с таким же успехом, можно использовать специальную dll-ку, по проверке... не понял, сорри...
Оставьте свое сообщение