仅在文本框中使用RegularExpressionValidator作为数字

时间:2013-04-30 17:50:38

标签: c# asp.net visual-studio-2012 webforms

Visual Studio 2012,Asp.net,webforms 尝试将输入控制到文本框中,仅限数字。我有以下代码:

<asp:RegularExpressionValidator id="RegularExpressionValidator1" 
                 ControlToValidate="txtAcres"
                 ValidationExpression="^\d+"
                 Display="Static"
                 ErrorMessage="Only Numbers"
                 EnableClientScript="False" 
                 runat="server"></asp:RegularExpressionValidator>

但我可以输入任何文字。我错过了什么?

4 个答案:

答案 0 :(得分:13)

首先检查文本框是否为空,然后仅检查数字。

<asp:TextBox ID="tbAccount" runat="server"></asp:TextBox>

检查文本框是否为空白:

<asp:RequiredFieldValidator ID="RequiredFieldValidatorAccount" runat="server" ErrorMessage="*Required" ControlToValidate="tbAccount" ForeColor="Red"></asp:RequiredFieldValidator>

仅允许数字:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="tbAccount" ErrorMessage="Please Enter Only Numbers" ForeColor="Red" ValidationExpression="^\d+$"></asp:RegularExpressionValidator>

答案 1 :(得分:3)

您可以在 ASPX 页面上使用此代码。在ValidationExpression属性中使用^[1-9]\d$

<asp:TextBox runat="server" ID="txtstock" width="50" />
        <asp:RegularExpressionValidator runat="server" ErrorMessage="Numeric Only" ControlToValidate="txtstock"
      ValidationExpression="^[1-9]\d$"></asp:RegularExpressionValidator>

答案 2 :(得分:2)

您需要为true属性设置EnableClientScript

 EnableClientScript="true" 
  

使用EnableClientScript属性指定是否为客户端   验证已启用。验证控件始终执行验证   在服务器上。他们还有完整的客户端实现   允许支持DHTML的浏览器(例如Microsoft Internet Explorer   4.0及更高版本)在客户端上执行验证。客户端验证通过检查用户输入来增强验证过程   在它发送到服务器之前。这允许检测错误   提交表单之前的客户端,避免往返   服务器端验证所需的信息,Reference

答案 3 :(得分:0)

您可以使用^(0|[1-9]\d*)$ 好成功!