6

我想验证特定文本的文本框,它不能为空。但是正则表达式验证器不会验证文本框是否为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>
4

3 回答 3

6

您应该将您的RegularExpressionValidatorRequiredFieldValidator.

如果其中任何一个失败,它将由于验证触发而阻塞。每个都有一个目的,而RegularExpressionValidator' 的目的是验证输入的文本而不是缺少文本。

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

于 2010-06-30T21:32:29.253 回答
3

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

于 2010-06-30T21:30:41.820 回答
3

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

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

jQuery 验证

流利的验证

于 2010-06-30T21:31:22.737 回答