【发布时间】:2015-02-11 13:37:17
【问题描述】:
我花了一整天的时间试图修复这个正则表达式,但无法知道错误到底在哪里。
我在使用正则表达式属性的 mvc 模型中使用以下内容,但是当我在我的 javascript 文件中执行有效表单时,它会抛出以下错误“Uncaught SyntaxError: Invalid regular expression: Invalid group”。
这是我的正则表达式。
[Display(Name = "Acct_Email", ResourceType = typeof(MyResource))]
[Required(ErrorMessageResourceType = typeof(MyResource), ErrorMessageResourceName = "Acct_EmailReq")]
[RegularExpression(@"^(?("")("".+?""@)|(([0-9a-zA-Z-!#\$%/_'\*\+/=\?\^`\{\}\|~]((\.(?!\.))|[-!#\$%/_'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z-!#\$%/_'\*\+/=\?\^`\{\}\|~])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]*\.)+[a-zA-Z]{2,6}))$", ErrorMessageResourceType = typeof(MyResource), ErrorMessageResourceName = "Acct_EmailLength")]
public string Email { get; set; }
请帮忙。提前致谢。
【问题讨论】:
-
有超过 6 个字符的 TLD
-
你能给出一个解决方案吗?我在 .net 中使用了相同的方法,它非常适合电子邮件验证。那么javascript验证出了什么问题呢?
-
你能告诉我上面的正则表达式到底有什么问题吗?
-
对于 aa@bb.xx,它将 TLD xx 的长度限制为 6 个字符,许多字符更长:data.iana.org/TLD/tlds-alpha-by-domain.txt
标签: javascript jquery .net regex asp.net-mvc-4