javascript无效正则表达式无效组

时间:2015-02-11 13:37:17

标签: javascript jquery .net regex asp.net-mvc-4

我花了一整天的时间来修复这个正则表达式,但却无法知道错误的确切位置。

我在使用regularexpression属性的mvc模型中使用以下内容,但是当我在我的javascript文件中执行有效的表单时,它会抛出以下错误“Uncaught SyntaxError:Invalid expression in invalidvalid 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; }

请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:0)

在正则表达式的开头:@"^(?(""),我想你的意思是:

@"^(?:("")

表示非捕获组。

答案 1 :(得分:0)

@JeSuisCharlie是对的,但他错过了一个。你还需要另一个结肠。这是带有添加冒号的完整正则表达式:

^(?:("")("".+?""@)|(([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}))$