我似乎无法在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
它只匹配整个字符串匹配(做我最初需要的!);我错过了什么吗?
感谢。
答案 0 :(得分:3)
在客户端,正则表达式由JavaScript执行,JS不支持\A
,\Z
或\z
。您可以使用^
和$
代替,但您不需要。验证器中使用的正则表达式通常自动锚定在两端。我很确定ASP.NET MVC是这种情况。
答案 1 :(得分:2)
请改用:@"^\d{3,4}$"
^
- 字符串的开头。
$
- 字符串结束。