在ASP.NET文本框中的必填字段验证器中,是否可以进行数字验证?
你应该使用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。
实际上,您只需要一个正则表达式验证器来实现这个目的,其中 ValidationExpression = "^\d+?$"
ValidationExpression = @"^\d+?$"
的意思是“验证表达式为一个仅包含数字的字符串”。 - IluTov
RegularExpressionValidator regexpvalidator = new RegularExpressionValidator();
regexpvalidator.ID = "RegularExpressionValidator1";
regexpvalidator.ValidationExpression = "\d+";
regexpvalidator.ControlToValidate = "YourControl";
regexpvalidator.ErrorMessage = "Please specify a digit";
regexpvalidator.SetFocusOnError = true;
<asp:TextBox ID="tb" runat="server"></asp:TextBox>
<asp:RangeValidator ControlToValidate="tb" Type="Integer"></asp:RangeValidator>
不,RequiredFieldValidator只能验证该字段是否包含内容。
如果要验证该字段仅包含数字,则可以使用具有模式"\d+"
的RegularExpressionValidator。
RequiredFieldValidator只检查字段是否已填写。它不关心填写了什么。
你需要一个额外的CompareValidator,将其运算符设置为DataTypeCheck,类型设置为Integer。请注意,你需要这两个条件:CompareValidator会忽略空输入。
RequiredFieldValidator
?它可以防止空白输入。 - Ahmad Mageed