5

我似乎在 Stack Overflow 上找不到与此相关的类似主题,所以这里是:

为什么当我针对我的 ASP.NET MVC 视图模型类指定以下定义时:

[Required]
[RegularExpression(@"\A\d{3,4}\Z",
   ErrorMessage = "The security code (CVN) must be between 3 - 4 digits long.")]
[Display(Name = "Card Security Code (CVN)")]
public string CardCVN { get; set; }

在我不显眼的客户端验证测试中,无法验证正则表达式?(并随后显示表单字段错误)。

似乎只要我的正则表达式更改为[RegularExpression(@"\d{3,4}"...删除整个字符串匹配技术,它就完美匹配了?并且似乎呈现的jquery验证,即使它不适用\A或者\Z它只匹配整个字符串匹配(做我最初需要的!);我错过了什么吗?

谢谢。

4

2 回答 2

3

在客户端,正则表达式由 JavaScript 执行,而 JS 不支持\A,\Z\z. 你可以使用^and$代替,但你不应该这样做。验证器中使用的正则表达式通常自动锚定在两端。我很确定 ASP.NET MVC 就是这种情况。

于 2011-06-08T05:48:35.333 回答
2

改用这个:@"^\d{3,4}$"

^- 字符串的开头。

$- 字符串结束。

于 2011-06-08T05:48:56.973 回答