javascript无效正则表达式无效组

javascript invalid regular expression invalid group

本文关键字:无效 正则表达式 javascript      更新时间:2023-09-26

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

我使用正则表达式属性在mvc模型中使用以下内容,但当我在javascript文件中执行表单valid时,它会抛出以下错误"Uncaught SyntaxError:Invalid regular expression:Invalidgroup"。

这是我的正则表达式。

        [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; }

请帮忙。提前谢谢。

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

@"^(?:("")

对于非捕获组。

@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}))$