如何使用正则表达式验证长文本字段中的多个电子邮件地址



我希望正则表达式验证多个电子邮件地址,以逗号分隔的长文本字段,但应该进行验证,以便字段只接受电子邮件ID格式的数据(例如:xyz@aig.com,@xyz@abc.in,xyz@abc.uk)。

我试过正则表达式:-

^([A-Za-z]+[A-Za-z0-9.-]+@(([aig.com])|([abc.in])|([abc.uk]))+.[A-Za-z]{2,4}(s*(;|,)s*|s*$))+$)

如果用户输入(例如:abc@aig.uk,abc@aig.in)

该表达式也接受电子邮件id

您可以使用它来验证指定的列表:

^(?:(?:[A-Za-z][A-Za-z0-9.-]*@(?:aig.com|abc.in|abc.uk))(?:,(?!$)|$))*$

演示。如果不接受负朝向,那么:

^(?:(?:[A-Za-z][A-Za-z0-9.-]*@(?:aig.com|abc.in|abc.uk)),)*(?:[A-Za-z][A-Za-z0-9.-]*@(?:aig.com|abc.in|abc.uk))$

值得注意的是:(?:aig.com|abc.in|abc.uk)匹配aig.com,abc.in,abc.uk中的任何一个。

在您的尝试中,[]不需要,因为[aig.com]匹配a,acc.cc.s或方括号内的任何符号排列。

(?:,(?!$)|$)也匹配,(如果它不是行的最后一个符号)或字符串的末尾。

最新更新