我想验证特定文本的文本框,但不能为空。但正则表达式验证器未验证文本框是否为 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>
答案 0 :(得分:5)
您应该将RegularExpressionValidator
与RequiredFieldValidator
合并。
如果失败,它将因验证触发而阻止。每一个都有用,RegularExpressionValidator
的目的是验证输入的文本而不是缺少文本。
如果您想在一个验证器中完成所有操作,可以使用CustomValidator
并设置ValidateEmptyText='true'
。然后你可以使用javascript正则表达式进行检查。我会推荐这两个验证器,因为这是一种标准方法。
答案 1 :(得分:3)
你应该同时使用两者。如果值为空,则不返回验证错误,这与ASP.NET验证控件很常见。您将在System.ComponentModel.DataAnnotations命名空间中的Validation属性中看到相同的行为。
答案 2 :(得分:3)
我通常会按照你的建议做,并且也有一个必需的验证器。这将允许您为每个规则添加不同的消息。
我建议任何Web开发人员看的另一个选项是JQuery验证插件。如果将此与Fluent验证结合使用,则可以将业务对象的所有验证规则保存在一个位置,并且可以使用相同的规则在客户端和服务器上进行验证。