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

时间:2019-02-20 07:22:33

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

我有两个正则表达式。

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用

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

请参见regex demo

详细信息

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

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