ASP.NET自定义验证器在逗号分隔的电子邮件地址列表中存在问题。

3
我可以帮您进行翻译。以下是需要翻译的内容:

我按照这里的博客文章中的步骤,使用自定义验证器来验证一组电子邮件地址。但是,文章中的正则表达式为:

Regex emailRegEx = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*",
                       RegexOptions.IgnoreCase);

允许此电子邮件地址通过:
"APL@domain.com 123@domain.com"

这明显是无效的。

我该如何将其更改为标记为无效?

注意:当您使用相同的正则表达式与核心RegEx验证器时,它确实会捕获该电子邮件,因此可能是匹配选项的问题?

谢谢

1个回答

2
Regex emailRegEx = new Regex(@"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", RegexOptions.IgnoreCase);

看起来你需要终止你的正则表达式。请检查上面表达式开头的'^'和结尾的"$"。


+1 这就是答案。RegularExpressionValidator 控件对 OP 起作用的原因是因为这些锚点被假定,并且它们因此正确匹配。然而,Regex 类不假定任何内容,因此必须明确指定它们。 - Ahmad Mageed

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