EmailAddressAttribute验证

时间:2015-06-23 16:38:59

标签: asp.net-mvc-5 data-annotations email-validation

我们正在使用msdn site

中的EmailAddressAttribute

这是验证地址,因此验证很好并且有效。但是,此库使用的验证本身或标准定义在哪里?我一直在搜索各种网站,只是为了找到这个标准。

我也知道覆盖这个基类并给它自己的正则表达式用作here之类的验证,但我很好奇验证来自上面的链接。

1 个答案:

答案 0 :(得分:3)

这是属性使用的RegEx。考虑到包含各种特殊字符,我说他们可能会使用互联网标准来处理电子邮件地址,RFC 822。

http://www.faqs.org/rfcs/rfc822.html

  

^((([AZ] | \ d | [#\ $%&安培;'!?\ * \ + \ - \ / = \ \ ^ {\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_ {\ | }〜] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])+)*)|((\ X22)((((\ X20 | \ X09)*(\ X0D \ X0A)) ?(\ X20 | \ X09)+)((\ x01- \ X08 \ X0B \ X0C \ x0e- \ X1F \ 0x7F部分] |?\ X21 | [\ x23- \ x5b] | [\ x5d- \ x7e] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])|(\\([\ x01- \ X09 \ X0B \ X0C \ x0d- \ 0x7F部分] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF]))))*(((\ X20 | \ X09)*(\ X0D \ X0A))(\ X20 |?\ X09)+)(\ X22)))@(( ([AZ] | \ d | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])|(([AZ] | \ d | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])([AZ] | \ d | - | \ | |〜| [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])([AZ] | \ d | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])))\)+(([AZ] |。[\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF] )|(([AZ] | [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])([AZ] | \ d | - | \ | _ |〜| [\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])([AZ] |。?[\ u00A0- \ uD7FF \ uF900- \ uFDCF \ uFDF0- \ uFFEF])))\ $