美国电话号码(000)-000-0000或000-000-0000的MVC验证

upd*_*dev 1 asp.net-mvc jquery html5 c#-4.0 asp.net-mvc-3

如何为电话号码验证注释电话号码数据注释?

有没有办法在前端允许这种格式,如使用HTML5模式?我知道HTML5和MVC3中都有电话号码的数据类型,但是我们想知道我们是否可以格式化(000)-000-0000或000-000-0000这样的格式,这样用户就不能输入超过10位的数字,如果他输入了一个以上述格式显示的手机.到目前为止我试过这个:

    [Required]
    [DataType(DataType.PhoneNumber)]
    [RegularExpression(@"^(\d{10})$", ErrorMessage = "Please enter proper phone number.")]
    [Display(Name = "phone")]
    public string Phone { get; set; }
Run Code Online (Sandbox Code Playgroud)

Min*_*rok 10

我正在研究同样的事情.这是我最终得到的:

[Required]
[DataType(DataType.PhoneNumber)]
[Display(Name = "Phone number")]
[RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "Not a valid number")]
public string PhoneNumber { get; set; }
Run Code Online (Sandbox Code Playgroud)

这将寻找3个数字; (它们周围可能有括号),可能有短划线,句号或空格; 然后是3个数字,可能是短划线,句号或空格; 然后4个数字.

我从这里偷了它:http://blog.stevenlevithan.com/archives/validate-phone-number