如果没有找到匹配项返回 true 以用于正则表达式属性(MVC 数据注释),我们可以否定此表达式吗?
模式应匹配:
- 任何少于 8 个字符的内容或
- 任何没有数字的东西或者
- 任何不带大写或的内容
- 任何没有特殊字符的内容
我想否定这个表达式/模式
[RegularExpression(@"^(.{0,7}|[^0-9]*|[^A-Z]*|[a-zA-Z0-9]*)$")]
我尝试了?!
但没有成功:
[RegularExpression(@"^(?!.{0,7}|[^0-9]*|[^A-Z]*|[a-zA-Z0-9]*)$")]
最佳答案
要否定包含多个锚定替代项的表达式,您需要将它们分组到锚定否定前瞻中。
因此,只需添加一个组(捕获或非捕获):
"^(?!(?:.{0,7}|[^0-9]*|[^A-Z]*|[a-zA-Z0-9]*)$).*$"
由于 RegularExpressionAttribute
需要完整的字符串匹配,因此我添加了 .*$
。
关于regex - 否定正则表达式以使用 MVC 验证属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36663604/