那么,建在ASP.NET MVC 3或不是[邮件]属性?建在、属性、邮件、不是

由网友(春风不识路)分享简介:在 [邮件] 属性将要建设成为ASP.NET MVC 3,因为它在期货?那么,现在可用?我想这是一个相当愚蠢的问题,但我花了一些时间在Google上搜寻,并没有发现任何正常的答案。电子邮件正则表达式:"^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\u...

[邮件] 属性将要建设成为ASP.NET MVC 3,因为它在期货?那么,现在可用?我想这是一个相当愚蠢的问题,但我花了一些时间在Google上搜寻,并没有发现任何正常的答案。

电子邮件正则表达式:

"^((([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+(.([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+)*)|((x22)((((x20|x09)*(x0dx0a))?(x20|x09)+)?(([x01-x08x0bx0cx0e-x1fx7f]|x21|[x23-x5b]|[x5d-x7e]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(([x01-x09x0bx0cx0d-x7f]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))))*(((x20|x09)*(x0dx0a))?(x20|x09)+)?(x22)))@((([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])([a-z]|d|-|.|_|~|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])*([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))).)+(([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])([a-z]|d|-|.|_|~|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])*([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))).?$"

解决方案

如果 [邮件] 应该是一个数据注解的MVC模型(如 [必需] ),那么它没有内置到ASP.NET MVC 3。

所有的模型数据说明被发现在namesace的 System.ComponentModel.DataAnnotations 的。在那里,你觉得这样的类的 RequiredAttribute标签的。

更新:

这是pretty的容易添加的电子邮件的属性:

 使用System.ComponentModel.DataAnnotations;

命名空间YourNamespace
{
    公共类EmailAttribute:RegularEx pressionAttribute
    {
        公共EmailAttribute(): base("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?")
        {
        }
    }
}
 
7 天玩转 ASP.NET MVC 第 4 天

什么是最好的或正确的正前pression检查电子邮件地址是在网络上的一个单独的和长时间的辩论。我没有坚持我的是任它。

The [Email] attribute was going to be built into ASP.NET MVC 3 as it was in futures? So is it now available or not? I guess it is quite a dumb question but I've spent some time googling and didn't find any normal answer.

The email regex:

"^((([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+(.([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+)*)|((x22)((((x20|x09)*(x0dx0a))?(x20|x09)+)?(([x01-x08x0bx0cx0e-x1fx7f]|x21|[x23-x5b]|[x5d-x7e]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(([x01-x09x0bx0cx0d-x7f]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))))*(((x20|x09)*(x0dx0a))?(x20|x09)+)?(x22)))@((([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])([a-z]|d|-|.|_|~|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])*([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))).)+(([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])([a-z]|d|-|.|_|~|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])*([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))).?$"

解决方案

If [Email] is supposed to be a data annotation for MVC models (like [Required]), then it's not built into ASP.NET MVC 3.

All the model data annotations are found in the namesace System.ComponentModel.DataAnnotations. There you find classes like RequiredAttribute.

Update:

It's pretty easy to add the Email attribute:

using System.ComponentModel.DataAnnotations;

namespace YourNamespace
{
    public class EmailAttribute : RegularExpressionAttribute
    {
        public EmailAttribute() : base("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?")
        {
        }
    }
}

What the best or correct regular expression for checking email addresses is, is a separate and long debate on the net. I'm not insisting that mine is either of it.

阅读全文

相关推荐

最新文章