MVC验证regex属性在c#中工作,但在JavaScript中不工作

MVC validation regex attribute works in C# but not JavaScript

本文关键字:工作 JavaScript 但在 验证 regex 属性 MVC      更新时间:2023-09-26

我试图通过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

如果它有帮助,这是在剑道UI网格编辑弹出使用

在你的模型上:

[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})(']?)$

显然这是我正在使用的KendoUI版本中目前已知的错误。我不确定是否有一个适用的更新。更多信息请访问http://www.kendoui.com/forums/mvc/general-discussions/regular-expression-validator-not-working-in-grid-popup.aspx