MSDN には電子メール アドレスを検証する例があり、以下は使用した正規表現です。bcz は、他のすべての正規表現とは異なり、私が見た中で最高の正規表現です。xx@[IP アドレス] を有効な電子メール アドレスとして認識します。私の問題は、MVC3 フォーム検証で機能させられないことです。jQuery.validate.unobtrusive.js は、「無効なグループ」というエラーをスローします。誰もこれを前に経験しましたか?
RegEx:
^(?("")(""[^""]+?""@)|(([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-Z0-9]{2,17}))$
MVC 3 Model:
[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-Z0-9]{2,17}))$", ErrorMessageResourceName = "ErrorInvalidEmail", ErrorMessageResourceType = typeof(OptInOutResource))]
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "lblUserName", ResourceType = typeof(MyResource))]
public string UserName { get; set; }