【问题标题】:Validation with validation block使用验证块进行验证
【发布时间】:2016-07-21 16:17:09
【问题描述】:

我需要使用 MS 企业库编写验证。 验证的目的是验证一个至少应该有一次 @ 关键字的字符串,它可以有任何 120 长度的东西,现在知道怎么做。

  <validator type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.ContainsCharactersValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                 characterSet="@" containsCharacter="Any" name="Contains Characters Validator" />

尝试这样的事情但没有解决目的。

或者一个正则表达式会起作用..?

【问题讨论】:

  • 这是你写的函数吗?
  • 不,是 MS 验证块在我的模型传递到后端之前对其进行检查。
  • 那么 C# 标签可能不是这个问题的最佳选择,因为您实际上并没有编写任何 C# 代码

标签: validation enterprise-library-5


【解决方案1】:

您可以将RegexValidator 与合适的正则表达式一起使用,而不是使用ContainsCharactersValidator

如果您的要求是:

  • @ 字符串中的任意位置,从 0 到多个实例
  • 字符串总长度在 1 到 120 个字符之间
  • 其他允许的字符只能是字母数字

那么[@A-Za-z0-9]{1,120} 的正则表达式应该为您完成这项工作。

【讨论】:

  • 但我的要求是它可以在任何位置有@超过1次并且可以有任何字符但限制应该有120
  • 没问题。是否有最小字符串长度要求?除了允许的字符之外,还有哪些其他字符?
  • 任何其他字符都是允许的,但它应该至少有一次 @ 并且限制应该是最大 120
  • 是否可以同时拥有RegexValidator(如我所述)和ContainsCharactersValidator(以验证至少有一个@ 符号?
猜你喜欢
  • 2013-01-13
  • 2016-09-09
  • 1970-01-01
  • 2015-06-03
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多