应该使用正则表达式而不是其他验证方法吗?

时间:2013-06-28 14:20:53

标签: asp.net validation

给定一个文本框,它应该包含一个数值:

<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有什么好处吗?

2 个答案:

答案 0 :(得分:1)

如果您熟悉正则表达式,那么我建议使用<asp:RegularExpressionValidator。你是正确的,当它们彼此相等时没有明显的区别,但是RegularExpressionValidator允许稍后在规范改变时进行编辑。例如,使用RegularExpressionValidator,可以很容易地在最后允许百分号或可能请求的任何其他更改。

答案 1 :(得分:0)

在功能/最终结果方面,使用两者没有区别。如果情况允许,我建议使用范围验证器其他验证器并满足您的需求。有人理解<asp:RangeValidator比理解^[0-9]{1,8}$要容易得多。虽然RegularExpressionValidator将为您提供更高程度的控制,但如果不需要该控制,那么请选择简单的解决方案并简化维护工作。