我可以找到大量有关 .NET 正则表达式的信息,但不是专门针对正则表达式属性的信息。据我所知,它的行为与正常的 .NET RegEx 不同。
我正在尝试使用数据注释验证来验证我的产品名称 ViewModel 字段。规则是:
This is good 123
This is not good
this $%^&* is not good
123 this 555 good
这将是单行,因为它是产品标题。
我认为我需要的正则表达式是
[RegularExpression(@"([a-zA-Z0-9]+ ?)+?", ErrorMessage = "The product name can only contain letters, numbers, and a single space between each word")]
但是当我开始输入第二个单词时,数据注释显示我的产品名称无效。
我错过了什么?任何帮助将不胜感激。
谢谢。
看起来问题是由于
?
中的 @"([a-zA-Z0-9]+ ?)+?"
与前一个元素匹配零次或一次而引起的。
将表达式更新为
@"([a-zA-Z0-9]+ ?)+"
将给出预期结果。
关注正则表达式语言 - 快速参考 - .NET 了解更多信息。