0

允许多个电子邮件 ID 以逗号分隔的正则表达式,不应允许在末尾和两个电子邮件 ID 之间使用多个逗号。

我允许多个电子邮件 ID 的正则表达式是((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*([,])*)*

但它允许在电子邮件 ID 的末尾和两个电子邮件 ID 之间使用多个逗号例如:

 **test@abc.com,,test2@abc.com,,**

这不应该被允许

4

3 回答 3

0

您应该将([,])*部分更改([,])?为允许 0 或 1 个逗号,而不是任意数量的逗号。

于 2012-09-06T11:17:18.923 回答
0

尝试将字符限制放在逗号大小写{1}之后[,],如下所示。

((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*([,]{1})*)*

更新 1

我在正则表达式方面没有太多专业知识,但这会起作用,

^(.+@[^\.].*\.[a-z]{2,})(;.+@[^\.].*\.[a-z]{2,})*$

更新 2

^(\s*,?\s*[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})+\s*$

通行证

  • test@abc.com,test2@abc.com
  • test@abc.com test2@abc.com
  • test@abc.com
  • test@abc.com, test@abc.com

参考:

于 2012-09-06T11:17:46.213 回答
0

我建议你这样做:

^(([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4}){1}($|\;([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4}))+)$

为了更好的解释(我在网络上连接了这么多建议的解决方案),我邀请您使用这个很棒的工具,它很好地解释了 RegExp 部分:

https://regex101.com/r/e09X7F/1

简而言之 :

  • 我的值以邮件地址开始和结束

或者

  • 我的值以邮件地址开头,后跟一个以“;”开头的邮件地址 并以这对夫妇“ ;mail_address ”结束。
于 2018-01-26T14:54:09.190 回答