【问题标题】:Combine two regular expression into one while validating Attribute验证属性时将两个正则表达式合二为一
【发布时间】:2019-07-13 19:41:00
【问题描述】:

我有两个正则表达式。

  1. [RegularExpression(@".*[^ ].*", ErrorMessage ="Something")] 验证仅包含空格的字符串(不包含任何其他字符 例如:" ".length = 7)。
  2. [RegularExpression(@"^[^~!@#$%&*]+$", ErrorMessage = "something")] 验证包含 ~!@#$%&* 特殊字符的字符串。

如何将两个正则表达式合二为一,因为在 asp.net mvc 中不允许重复正则表达式注释。

【问题讨论】:

标签: c# regex asp.net-mvc model-validation


【解决方案1】:

你可以使用

^[^~!@#$%&*]*[^~!@#$%&*\s][^~!@#$%&*]*$

regex demo

详情

  • ^ - 字符串开头
  • [^~!@#$%&*]* - ~!@#$%&* 列表中除 char 之外的 0+ 个字符
  • [^~!@#$%&*\s] - ~!@#$%&* 列表和空格中的字符以外的字符
  • [^~!@#$%&*]* - ~!@#$%&* 列表中除字符外的 0+ 个字符
  • $ - 字符串结束。

注意:为了还允许空字符串,您需要在可选组内的锚点之间包装模式:^(?:[^~!@#$%&*]*[^~!@#$%&*\s][^~!@#$%&*]*)?$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多