RegularExpressionValidator获取电子邮件或数字或英文字符的正则表达式?

时间:2016-02-28 12:54:38

标签: c# asp.net .net regex

我正在尝试将正则表达式设置为asp:RegularExpressionValidator,其中包含电子邮件,数字(0-9)或英文字符(a-z A-Z)。

当我尝试在它们之间进行OR操作时:

<asp:TextBox ID="TextBox1" CssClass="textbox" runat="server"></asp:TextBox>

<asp:RegularExpressionValidator ID="RegFieldUserCodeLoginM" CssClass="" runat="server" ControlToValidate="TextBox1" ValidationGroup="LoginGroup"  
Text="Only English characters and numbers are allowed , email addresses included!" 
ValidationExpression="\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z | ^[a-zA-Z0-9]+$"></asp:RegularExpressionValidator>

正则表达式不起作用。

如何在两者之间进行OR操作?

谢谢

1 个答案:

答案 0 :(得分:1)

您必须删除两个表达式之间|标记两侧的空格:

<asp:TextBox ID="TextBox1" CssClass="textbox" runat="server"></asp:TextBox>

<asp:RegularExpressionValidator ID="RegFieldUserCodeLoginM" CssClass="" runat="server" ControlToValidate="TextBox1" ValidationGroup="LoginGroup"  
Text="Only English characters and numbers are allowed , email addresses included!" 
ValidationExpression="\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z|^[a-zA-Z0-9]+$"></asp:RegularExpressionValidator>