必填字段验证器中的数字验证

时间:2009-09-08 15:01:07

标签: asp.net validation

是否可以将数字验证放在asp.net文本框中的必填字段验证器中?

7 个答案:

答案 0 :(得分:70)

您应该使用CompareValidator,例如:

<asp:TextBox ID="txt" runat="server />
<asp:CompareValidator ID="cv" runat="server" ControlToValidate="txt" Type="Integer"
   Operator="DataTypeCheck" ErrorMessage="Value must be an integer!" />

如果您想要进行简单的数据类型检查,这是最自然的选择。否则,如果您要验证范围,请使用RangeValidator建议。如果您需要某种模式,请使用RegularExpressionValidator

请注意,您还需要添加RequiredFieldValidator,因为某些验证器会允许空白条目。

答案 1 :(得分:7)

实际上,ValidationExpression = "^\d+?$"

只需要一个用于此目的的正则表达式验证器

答案 2 :(得分:4)

也许您可以使用附加到该文本框的RangeValidator,将Type设置为Integer或wathever。

RangeValidator class on MSDN

答案 3 :(得分:2)

另一种可能性是使用RegexpValidator并添加一个正则表达式,确保其中包含1个或更多数字,如:

RegularExpressionValidator regexpvalidator = new RegularExpressionValidator(); 
regexpvalidator.ID = "RegularExpressionValidator1"; 
regexpvalidator.ValidationExpression = "\d+"; 
regexpvalidator.ControlToValidate = "YourControl"; 
regexpvalidator.ErrorMessage = "Please specify a digit"; 
regexpvalidator.SetFocusOnError = true; 

答案 4 :(得分:2)

不,RequiredFieldValidator只能验证该字段是否包含某些内容。

如果要验证该字段只包含数字,可以使用带有"\d+"模式的RegularExpressionValidator。

答案 5 :(得分:2)

RequiredFieldValidator仅检查字段是否已填写。它不关心用什么。

你需要一个额外的CompareValidator,它的运算符设置为DataTypeCheck,它的Type设置为Integer。 请注意,您需要两者:CompareValidator将忽略空输入。

答案 6 :(得分:1)

是的,就像这样:

<asp:TextBox ID="tb" runat="server"></asp:TextBox>
<asp:RangeValidator ControlToValidate="tb" Type="Integer"></asp:RangeValidator>