给定一个文本框,它应该包含一个数值:
<asp:TextBox ID="txtHoldsAnInt" runat="server" />
在我们的代码库中,通常RegularExpressionValidator用于所有验证(必填字段除外),如下所示:
<asp:RegularExpressionValidator ErrorMessage="..." ControlToValidate="txtHoldsAnInt"
Text="*" runat="server" ValidationExpression="^[0-9]{1,8}$" />
或者,可以使用RangeValidator来获得相同的结果:
<asp:RangeValidator ErrorMessage="..." ControlToValidate="txtHoldsAnInt"
MinimumValue="0" MaximumValue="99999999" Type="Integer" runat="server" />
RegularExpressionValidator是否优于其他验证器,即使另一个验证器可以工作?总是使用RegularExpressionValidator有什么好处吗?
答案 0 :(得分:1)
如果您熟悉正则表达式,那么我建议使用<asp:RegularExpressionValidator
。你是正确的,当它们彼此相等时没有明显的区别,但是RegularExpressionValidator允许稍后在规范改变时进行编辑。例如,使用RegularExpressionValidator,可以很容易地在最后允许百分号或可能请求的任何其他更改。
答案 1 :(得分:0)
在功能/最终结果方面,使用两者没有区别。如果情况允许,我建议使用范围验证器其他验证器并满足您的需求。有人理解<asp:RangeValidator
比理解^[0-9]{1,8}$
要容易得多。虽然RegularExpressionValidator
将为您提供更高程度的控制,但如果不需要该控制,那么请选择简单的解决方案并简化维护工作。