C# c中电子邮件地址的正则表达式验证程序#

C# c中电子邮件地址的正则表达式验证程序#,c#,regex,email,C#,Regex,Email,我需要检查我的aspx页面标记中的电子邮件地址是否正确 可能的电子邮件地址是: 姓名(AndAnyNumber)。姓氏(AndAnyNumber)@march.com 我已经尝试了这个正则表达式验证器: <asp:RegularExpressionValidator ID="retxtEmail" runat="server" ControlToValidate="txtEmail" ErrorMessage="Not valid" Text="Not valid

我需要检查我的aspx页面标记中的电子邮件地址是否正确

可能的电子邮件地址是:

姓名(AndAnyNumber)。姓氏(AndAnyNumber)@march.com

我已经尝试了这个正则表达式验证器

  <asp:RegularExpressionValidator ID="retxtEmail" runat="server" 
     ControlToValidate="txtEmail"
     ErrorMessage="Not valid" Text="Not valid" Display="Dynamic" 
     ValidationExpression="^([a-z][a-z0-9]*\\.[a-z][a-z0-9]*@march\\.com)$"  
     SetFocusOnError="true" EnableClientScript="true"></asp:RegularExpressionValidator>

如果您成功,因为对于电子邮件地址:

汤姆。shepard2@march.com

报税表是无效的,为什么

你能帮我解决这个问题吗


提前感谢。

您的
regex
有问题。请用以下内容替换您的
regex

^([a-zA-Z]+[0-9]+\.[a-zA-Z0-9]+@march\.com)$

如果数字不是强制性的,请将
[0-9]+
替换为
[0-9]*

您的
正则表达式中存在问题。请将
正则表达式替换为以下内容:

^([a-zA-Z]+[0-9]+\.[a-zA-Z0-9]+@march\.com)$

如果数字不是强制性的,则将
[0-9]+
替换为
[0-9]*
此正则表达式已通过使用正则表达式Coach(编写正则表达式的一个很好的免费工具)进行测试

问题是:

使用

  • 不需要捕捉括号
  • 目前区分大小写。电子邮件地址往往不是
  • 双反斜杠-这是导致我出现问题的原因,尽管这可能是ASP.NET的问题

此正则表达式已通过使用正则表达式Coach(编写正则表达式的一个很好的免费工具)进行测试

问题是:

使用

  • 不需要捕捉括号
  • 目前区分大小写。电子邮件地址往往不是
  • 双反斜杠-这是导致我出现问题的原因,尽管这可能是ASP.NET的问题

    • Hm,好奇,试试
      “^([a-z][a-z0-9]*[.][a-z][a-z0-9]*@march[.]com)$”
      我猜这是由于双转义反斜杠造成的。您确实需要转义
      ,但只需使用单斜杠即可。如果这仍然不起作用(例如,如果asp.net为您添加了第二个斜杠),请尝试上面的@WiktorStribiżew建议,使用
      [.]
      .Hm,好奇的是,尝试
      “^([a-z][a-z0-9]*[.][a-z][a-z0-9]*@march[.]com)$”
      我想这是由于双反斜杠转义造成的。您确实需要转义
      ,但只需使用单斜杠即可。如果这仍然不起作用(例如,如果asp.net为您添加了第二个斜杠),请尝试上面的@WiktorStribiżew建议,使用
      [.]
      。然后他的电子邮件可以以一个数字开头,而他并不想要这个数字([a-zA-Z]+[0-9]+.[a-zA-Z0-9]+@march.com)$
regex现在允许用户部分和域部分不带点。此模式与提供的示例不匹配-不确定其被接受的原因?然后他的电子邮件可以以一个数字开头,他不想要这个数字([a-zA-Z]+[0-9]+.[a-zA-Z0-9]+@march.com)$
regex现在允许用户部分和域部分不带点。此模式与提供的示例不匹配-不确定为什么接受此模式?您的工具一定有问题。regex不起作用。不,SO上的格式是字符。需要将其更改为代码snippit,以便包含所有字符。代码现在已修复。您的工具一定有问题。正则表达式不起作用。不,SO上的格式正在吞噬字符。需要将其更改为代码snippit,以便包含所有字符。代码现在已修复。