2

我正在使用 RegEx"^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+[.])*(\.[a-zA-Z]{2,17})$"验证电子邮件,但我的潜在客户希望按照 Microsoft 标准进行验证。所以我需要遵循

http://msdn.microsoft.com/en-us/library/01escwtf(v=vs.100).aspx

因为一切都按照标准工作正常,但我仍然面临着问题

有效:js#internal@proseware.com 有效:j_9@[129.126.118.1]

上述邮件 ID 仍然返回无效。我尝试使用该页面中使用的正则表达式

^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$ 

但我在服务器页面中收到错误消息。虽然我将表达式粘贴在验证表达式中,但它无法接受字符。

注意:我正在使用 ASP.Net 验证器来验证电子邮件。

4

1 回答 1

1

描述

为了匹配您的示例文本中的这两个电子邮件地址,我想我会像这样重写您的表达式:

[A-Z0-9._%#+-]+@(?:[A-Z0-9.-]+\.[A-Z]{2,4}|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\])

在此处输入图像描述

如果您希望使用它来验证可能只包含电子邮件的字符串,那么您可以添加字符串锚点的开始/结束^$.

例子

现场演示

示例文本

Valid: js#internal@proseware.com Valid: j_9@[129.126.118.1]

火柴

[0][0] = js#internal@proseware.com
[1][0] = j_9@[129.126.118.1]
于 2013-08-16T19:37:52.537 回答