2013-06-28 2 views
1

Учитывая Textbox, который должен содержать числовое значение:Должны ли регулярные выражения использоваться для других методов проверки?

<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" /> 

Имеет ли RegularExpressionVali dator имеет преимущество перед другими валидаторами, даже если будет работать другой валидатор? Существуют ли какие-либо преимущества при использовании регулярного выражения?

ответ

1

Если вы знакомы с регулярными выражениями, я бы рекомендовал использовать <asp:RegularExpressionValidator. Вы правы, что нет заметной разницы, когда они равны друг другу, но RegularExpressionValidator позволяет легко редактировать позже при изменении спецификаций. Например, с помощью RegularExpressionValidator было бы легко разрешить знак процента в конце или любые другие изменения, которые могут быть запрошены.

0

Что касается функциональности/конечного результата, то между ними нет никакой разницы. Я бы предложил использовать валидатор диапазона других валидаторов, если это разрешает ситуация и удовлетворяет ваши потребности. Намного легче понять <asp:RangeValidator, чем понимать ^[0-9]{1,8}$. В то время как RegularExpressionValidator даст вам гораздо более высокую степень контроля, если этот элемент управления не понадобится, затем перейдите к простому решению и упростите ваши усилия по техническому обслуживанию.