我花了一整天的时间来修复这个正则表达式,但却无法知道错误的确切位置。
我在使用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; }
请帮忙。提前谢谢。
答案 0 :(得分:0)
在正则表达式的开头:@"^(?("")
,我想你的意思是:
@"^(?:("")
表示非捕获组。
答案 1 :(得分:0)
^(?:("")("".+?""@)|(([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}))$