1

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

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

4

2 回答 2

1

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

于 2013-06-28T14:37:15.943 回答
0

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

于 2013-06-28T14:27:10.387 回答