Regular Expression Validator不验证空文本框

时间:2010-06-30 21:28:57

标签: asp.net regex validation fluentvalidation fluentvalidation-2.0

我想验证特定文本的文本框,但不能为空。但正则表达式验证器未验证文本框是否为 BLANK 。但是,它验证我是否在文本框中键入内容。

即使文本框为空,如何使正则表达式触发?

我应该同时使用Required Validator + Regex Validator吗?感谢。

<asp:TextBox ID="txtcard" runat="server" MaxLength="16"></asp:TextBox>

<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" 
ControlToValidate="txtcard" ErrorMessage="Please type credit card no" 
ValidationExpression="^\d{16}$"></asp:RegularExpressionValidator>

3 个答案:

答案 0 :(得分:5)

您应该将RegularExpressionValidatorRequiredFieldValidator合并。

如果失败,它将因验证触发而阻止。每一个都有用,RegularExpressionValidator的目的是验证输入的文本而不是缺少文本。

如果您想在一个验证器中完成所有操作,可以使用CustomValidator并设置ValidateEmptyText='true'。然后你可以使用javascript正则表达式进行检查。我会推荐这两个验证器,因为这是一种标准方法。

答案 1 :(得分:3)

你应该同时使用两者。如果值为空,则不返回验证错误,这与ASP.NET验证控件很常见。您将在System.ComponentModel.DataAnnotations命名空间中的Validation属性中看到相同的行为。

答案 2 :(得分:3)

我通常会按照你的建议做,并且也有一个必需的验证器。这将允许您为每个规则添加不同的消息。

我建议任何Web开发人员看的另一个选项是JQuery验证插件。如果将此与Fluent验证结合使用,则可以将业务对象的所有验证规则保存在一个位置,并且可以使用相同的规则在客户端和服务器上进行验证。

JQuery Validation

Fluent Validation