Я ожидаю, что MongoDB примет электронную почту в формате "email@email.com"
Технически, это ADDR_SPEC , а не адрес электронной почты, так что слава за разъяснение того, о чем вы спрашиваете. Даже если вы говорите только об одном SMTP ADDR_SPEC (есть другие виды адресов электронной почты), синтаксис все равно очень гибкий .
Хотя вы можете использовать универсальное решение ( это работает для большинства случаев), вы, вероятно, захотите исключить цитируемые имена почтовых ящиков, исключить числовые IP-адреса и потребовать полное имя DNS, следовательно, что-то по строки:
/[a-z0-9\._%+!$&*=^|~#%{}/\-]+@([a-z0-9\-]+\.){1,}([a-z]{2,22})/
(и вы, возможно, захотите добавить якоря, чтобы запретить ведущие / тренировочные пробелы, если вы не обрезаете строку в другом месте)
(но учтите, что это не доказывает, что адрес имеет запись MX, а также что SMTP-сервер по этому адресу будет принимать электронные письма для почтового ящика или что лицо, предоставляющее данные, контролирует почтовый ящик)