如何验证ASP.NET文本框中的整数和浮点输入

时间:2010-03-04 09:54:05

标签: asp.net validation

我使用下面的代码验证ASP.NET中的整数和浮点数,但如果我不输入小数,那么它会给我一个错误。

 <asp:TextBox ID="txtAjaxFloat" runat="server" />
 <cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" TargetControlID="txtAjaxFloat" FilterType="Custom, numbers" ValidChars="." runat="server" />

    

我也有来自 What's a C# regular expression that'll validate currency, float or integer? 的正则表达式,但如果我在小数点后只输入一个值,则会给出验证错误。

5 个答案:

答案 0 :(得分:3)

使用ControlValidators

例如(来自链接)

<asp:textbox id="textbox1" runat="server"/>
<asp:RangeValidator id="valRange" runat="server"
    ControlToValidate="textbox1"
    MaximumValue="12/31/1998"
    MinimumValue="1/1/1998"
    Type="Date"
    ErrorMessage="* The date must be between 1/1/1998 and 12/13/1998"
    Display="static">*</asp:RangeValidator>
>

Type属性可以是“String”,“I​​nteger”,“Double”,“Date”或“Currency”之一

答案 1 :(得分:2)

您可以尝试以下操作。

<asp:TextBox ID="TextBox2" runat="server" Style="z-index: 103; left: 289px; position: absolute; top: 132px"></asp:TextBox>
<cc1:FilteredTextBoxExtender
    ID="FilteredTextBoxExtender1"
    runat="server"
    TargetControlID="TextBox2"
    ValidChars="0123456789.">
</cc1:FilteredTextBoxExtender>

答案 2 :(得分:1)

<asp:RegularExpressionValidator
    ID="RegularExpressionValidator6"
    runat="server"
    ControlToValidate="TBHd"
    ValidationExpression="([0-9])[0-9]*[.]?[0-9]*"
    ErrorMessage="Invalid Entry">
</asp:RegularExpressionValidator>

答案 3 :(得分:0)

简单的解析怎么样? E.g。

int i;
if (!int.TryParse(txtAjaxFloat.Text, out i))
   i = 0;

float f;
if (!float.TryParse(txtAjaxFloat.Text, out f))
   f = 0;

其中0是您的默认“无法验证”值。

答案 4 :(得分:0)

我们可以使用 CompareValidator 和 Datatypecheck Operator 来勾选文本框中文本的数据类型。

<asp:CompareValidator ID="CValid" runat="server" ControlToValidate="txtName" Display="Dynamic" ErrorMessage="Float value required." Operator="DataTypeCheck" SetFocusOnError="True" Type="Double"></asp:CompareValidator>