不允许提交有效的电子邮件地址
Valid Email Addresses are not allowed to submit
下面是我的电子邮件验证代码 -
UserViewModel.cs
[EmailAddress(ErrorMessage = "Invalid email address")]
public string EmailAddress { get; set; }
Edit.cshtml
<div class='form-group'>
@Html.LabelFor(model =>model.EmailAddress):
@Html.TextBoxFor(model =>model.EmailAddress)
@Html.ValidationMessageFor(m => m.EmailAddress)
</div>
UserController.cs
if (!ModelState.IsValid)
{
//Show error to user
}
//Update user details
我查看了此 wiki 页面以查找有效的电子邮件地址 -
https://en.wikipedia.org/wiki/Email_address#Examples
当我尝试为以下电子邮件地址提交表单时 -
"much.more unusual"@example.com
"very.unusual.@.unusual.com"@example.com
"very.(),:;<>[]\".VERY.\"very@\ \"very\".unusual"@strange.example.com
admin@mailserver1
"()<>[]:,;@\\"!#$%&'*+-/=?^_`{}| ~.a"@example.org
" "@example.org
üñîçøðé@example.com
üñîçøðé@üñîçøðé.com
除 admin@mailserver1
外,上述所有电子邮件地址都在客户端验证失败。
问题 -
- 为什么 HTML5/MVC 电子邮件地址验证没有通过这些有效的电子邮件地址。
- 是否有任何网站 link 列出 HTML5 电子邮件验证规则?
- 是否有任何网站 link 列出 MVC 电子邮件验证规则?
谢谢!
对于 html5 客户端验证 - 我相信大多数情况都会失败 - 请参阅 w3c's email specification - 用于验证电子邮件的正则表达式是:
/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
所有单独列出的形式 admin@mailserver1
将无法通过此正则表达式匹配测试。
您可以在 ASP.NET MVC github repo 中找到 asp.net MVC 中用于电子邮件验证的正则表达式
从我执行的 RegEx 测试来看,除了 admin@mailserver1
之外,它似乎接受所有这些电子邮件地址都是有效的
下面是我的电子邮件验证代码 -
UserViewModel.cs
[EmailAddress(ErrorMessage = "Invalid email address")]
public string EmailAddress { get; set; }
Edit.cshtml
<div class='form-group'>
@Html.LabelFor(model =>model.EmailAddress):
@Html.TextBoxFor(model =>model.EmailAddress)
@Html.ValidationMessageFor(m => m.EmailAddress)
</div>
UserController.cs
if (!ModelState.IsValid)
{
//Show error to user
}
//Update user details
我查看了此 wiki 页面以查找有效的电子邮件地址 - https://en.wikipedia.org/wiki/Email_address#Examples
当我尝试为以下电子邮件地址提交表单时 -
"much.more unusual"@example.com
"very.unusual.@.unusual.com"@example.com
"very.(),:;<>[]\".VERY.\"very@\ \"very\".unusual"@strange.example.com
admin@mailserver1
"()<>[]:,;@\\"!#$%&'*+-/=?^_`{}| ~.a"@example.org
" "@example.org
üñîçøðé@example.com
üñîçøðé@üñîçøðé.com
除 admin@mailserver1
外,上述所有电子邮件地址都在客户端验证失败。
问题 -
- 为什么 HTML5/MVC 电子邮件地址验证没有通过这些有效的电子邮件地址。
- 是否有任何网站 link 列出 HTML5 电子邮件验证规则?
- 是否有任何网站 link 列出 MVC 电子邮件验证规则?
谢谢!
对于 html5 客户端验证 - 我相信大多数情况都会失败 - 请参阅 w3c's email specification - 用于验证电子邮件的正则表达式是:
/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
所有单独列出的形式 admin@mailserver1
将无法通过此正则表达式匹配测试。
您可以在 ASP.NET MVC github repo 中找到 asp.net MVC 中用于电子邮件验证的正则表达式
从我执行的 RegEx 测试来看,除了 admin@mailserver1