我花了一整天的时间试图修复这个正则表达式,但无法知道错误的确切位置。
我使用正则表达式属性在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}))$