验证属性时将两个正则表达式合二为一

Combine two regular expression into one while validating Attribute

我有两个正则表达式。

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

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

您可以使用

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

regex demo

详情

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

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