0

我正在尝试通过 MVC 正则表达式属性对表单字段进行验证。但似乎无论我使用什么正则表达式,验证只在服务器端有效,而在浏览器中无效。

我用于验证的代码是:

[DisplayName("Email Address")]
[Required]
[RegularExpression(@"^[a-zA-Z0-9\.-]*@[a-zA-Z0-9\.]*\.[a-zA-Z\.]{2,6}$", ErrorMessage = "Valid email required.")]
public string emailAddress { get; set; }

正则表达式将通过 验证失败"asd",但它在不应该"asd@"通过验证时开始通过验证。"asd@asd"将正则表达式粘贴到http://regexpal.com/将表明它只适用于完整的电子邮件。

截图: http: //puu.sh/2P05x.png

如果有帮助,这将在 Kendo UI 网格编辑弹出窗口中使用。

4

2 回答 2

0

在您的模型上:

[RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,4}\.[0-9]{1,4}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage = "invalid.")]

并确保在您的页面中引用了jquery.validate.min.jsjquery.validate.unobtrusive.min.js

最后在你的 web.config 中

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

或者如果你想用 JS 来做:

^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,4}\.[0-9]{1,4}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
于 2013-05-08T01:26:02.390 回答
0

显然,这是我使用的 KendoUI 版本中当前已知的错误。我不确定是否有适用的更新。更多关于它的信息,http://www.kendoui.c​​om/forums/mvc/general -discussions/regular-expression-validator-not-working-in-grid-popup.aspx

于 2013-05-08T22:40:57.923 回答