我的类型字符串的域对象的RegularExpression属性有奇怪的行为

时间:2012-12-04 08:38:49

标签: asp.net asp.net-mvc regex validation attributes

我正在使用Razor视图引擎开发MVC 4 ASP.NET应用程序。我在视图中有一个名为'Title'的属性,并设置了这样的元数据:

[RegularExpression(@"^[\p{L}\p{N}\s\,\،\-\(\)\u200C]*$", ErrorMessage = "Some error message")]
public string Title { get; set; }

在视图中,一旦我开始在相应的文本框中键入任何字符,它就会显示验证消息。这是剃须刀的观点:

@Html.LabelFor(model => model.Title)
@Html.EditorFor(model => model.Title)
@Html.ValidationMessageFor(model => model.Title)

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

客户端验证器使用的是javascript,因此正则表达式需要使用特定于javascript的语法。

根据regular-expressions.info,不支持\p{...}构造。

您可以将\p{L}\p{N}替换为\w,具体取决于您的目标字符集。