为什么ASP.Net验证只能部分工作?

时间:2012-12-12 16:58:14

标签: asp.net forms validation

我正在尝试使用Visual Basic.Net和ASP进行验证。

我将RegularExpressionValidator放入表单字段进行测试,并通过Page_Load函数中的Visual Basic代码分配属性,如下所示:

LoginID.ValidationExpression = "[\\s\\S]{0,3}"
LoginID.ErrorMessage = "Maximum 3 characters are allowed."

我为测试目的设置了最多三个字符。无论长度如何,该文本字段的输入都将无效,并且错误消息未从其库存值更新。

为什么会发生这种情况,我该如何解决?

编辑:

我的正则表达式工作得很好。我已经测试过了。还有其他问题。

以下是需要了解更多信息的大部分代码。除此之外,我没有看到任何其他相关内容:

<%-- ASP code %>
<th width="200"><span class="required">*</span>Create Login ID :</th>
     <td width="230" align="left"><asp:TextBox ID="txtLoginID" runat="server"          CssClass="inputbox" MaxLength="50"></asp:TextBox><br />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="First" CssClass="ValueValidator" ControlToValidate="txtLoginID" Display="Dynamic" runat="server" ErrorMessage="<br>Please Enter LoginID"></asp:RequiredFieldValidator>

<asp:RegularExpressionValidator ID="ValRegExLoginID" runat="server" ControlToValidate="txtLoginID" CssClass="ValueValidator" ErrorMessage="*"></asp:RegularExpressionValidator>

</td>

//Visual Basic Code
Protected Sub Page_Load(ByVal source As Object, ByVal e As System.EventArgs) Handles Me.Load

If Not IsPostBack Then
    ValRegExLoginID.ValidationExpression = "[\\s\\S]{0, 3}"
    ValRegExLoginID.ErrorMessage = "Maximum 3 characters are allowed."
End If

End Sub

1 个答案:

答案 0 :(得分:0)

允许最多3个字符的正则表达式为:

^.{0,3}$

所以替换

LoginID.ValidationExpression = "[\\s\\S]{0,3}"

LoginID.ValidationExpression = "^.{0,3}$"