Regular Expression Validator不验证空文本框

TTC*_*TCG 5 regex asp.net 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>
Run Code Online (Sandbox Code Playgroud)

Kel*_*sey 5

你应该结合你RegularExpressionValidatorRequiredFieldValidator.

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

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


Dan*_*son 3

我通常会按照您的建议进行操作,并且也有一个必需的验证器。这将允许您为每个规则提供不同的消息。

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

jQuery 验证

流畅的验证