Цитата:
X++:
#localmacro.EmailValidationPattern
@'([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)'
#endmacro
Какая-то странная регулярка. Явно выделена возможность указания сервера по ip-адресу, но мало того, что никак не проверяется, что число при этом не должно быть больше 255, но к тому же это абсолютно бесполезно сделано, так как вариант [a-zA-Z0-9\-]+ включает их все. Не проверяется, что адрес не может начинаться и заканчиваться точкой. Странные первая "[" после "@" и последняя "]". Домен верхнего уровня может быть больше 4 символов (например travel, museum).
Для простых проверок лучше такой
X++:
@'[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,10})'
Ещё есть вариант в \Classes\SysEmailDistributor\validateEmail, но по-моему он ещё хуже.
Все они абсолютной точности не дадут, но большинство ошибок отсекают. Для проверок по-точнее есть
RFC822-совместимый (не для слабонервных). Можно ещё домены верхнего уровня ограничить известными, короче, чем более совершенна проверка, тем монструозней получится регэкс.
В Ax3 реализация регулярных выражений очень глючная, но такой вариант кажется работает верно (здесь < и > можно убрать, если нужно соответствие не всей строки)
X++:
@'<[0-9a-zA-Z\-_]+[0-9a-zA-Z\-_\.]*[^.]@[0-9a-zA-Z\-]+[0-9a-zA-Z\-\.]*\.[a-zA-Z][a-zA-Z]+>'
P.S. Для поддержки кириллицы нужно немного доработать.
P.P.S. Для отладки регулярок рекомендую онлайн тулзу
debuggex.com.