[英]can't get an asp:RegularExpressionValidator to work
我有一个问题,正在使用一个正则表达式字段验证器为我正在尝试更新的asp页面工作。
这是asp:Panel剥离到重要位:
<asp:Panel ID="pnlEmailAddressCollection" runat="server">
<div id="POMInput-wrapper">
<div class="POMInput-FieldText">
<span class="POMInput-wrapper-text">Name:</span>
<br />
<span class="POMInput-wrapper-text">Email Address:</span>
<br />
</div>
<div class="POMInput-FieldEntry">
<asp:TextBox ID="txtEmailAddress" name="emailAddress" runat="server" CssClass="textInput"></asp:TextBox>
<asp:TextBox ID="txtUserName" runat="server" name="firstName" CssClass="textInput"></asp:TextBox>
</div>
<asp:RequiredFieldValidator ID="rfvNameValidator" runat="server"
ErrorMessage="Please enter your name"
ControlToValidate="txtUserName"
Display="None" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ErrorMessage="Please enter your email address"
ControlToValidate="txtEmailAddress"
Display="None" />
<asp:RegularExpressionValidator ID="rfvEmailValidator2" runat="server"
ErrorMessage="Please enter a valid email address"
ControlToValidate="txtEmailAddress"
Display="None"
ValidationExpression="^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$" />
<asp:ValidationSummary ID="ValidationSummary1" runat="server"
ShowMessageBox="true"
ShowSummary="false"
EnableClientScript="true" />
</div>
</asp:Panel>
目前我输入的任何电子邮件都失败了.asp:RequiredFieldValidator正如预期的那样工作。
我在测试项目中测试了正则表达式,并且正则表达式似乎很好(在有效的电子邮件上返回true,在无效的电子邮件上返回false)。 我是否错误地设置了asp:RegularExpressionValidator?
你应该删除双反斜杠:
ValidationExpression="^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$"
请注意,您将两个反斜杠放在只有一个的位置。 如果您要从后面的代码设置此表达式,则您提供的字符串是正确的。 但是在aspx中你不必逃避反斜杠。
目前接受的电子邮件地址类似于abc@abc{backslash}.com
您可以尝试使用此代码
ValidationExpression="[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"
注意:您可以删除^和$符号
正则表达式在.NET(服务器端)中工作,但由于客户端JScript实现(如“ 备注”部分中所述 )而失败。 要验证这一点(它通过服务器端验证),请将验证程序上的EnableClientScript
属性设置为false。
然后撤消该更改并验证正则表达式将在客户端传递。 如果您更容易,可以使用在线测试仪 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.