多个电子邮件的正则表达式验证器

3

我正在验证一个文本框是否为有效的电子邮件,使用以下代码:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
ControlToValidate="txtMailCustom"
Text="Invalid address"
ValidationExpression="^([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})(\]?)$" runat="server" />  

现在我希望用户能够输入多个电子邮件地址,用逗号和空格分隔。

我该如何集成这种行为?

3个回答

5

尝试使用以下表达式,对我有效:

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

上面的代码是用于分隔电子邮件地址的逗号,。如果你想使用分号;而不是逗号,,则将上述表达式末尾的逗号,替换为分号;

如果有人输入电子邮件地址如下:abc@abc.comabc@abc.com我该如何进行验证? - ammad khan

4

尝试使用这个表达式:

^(\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*$

0
我应该这样做:它会检查至少一个邮件,以及在它之前的每个电子邮件列表,每个电子邮件后面都有一个逗号和可能的空格。
^(([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})(\]?), ?)*^([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})(\]?)$

如果需要每个邮件之间的空格,请使用此选项:

^(([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})(\]?), )*^([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})(\]?)$

请注意,我只是使用了您的单一邮件检查器作为基础,并没有真正编辑它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接