如何使用mvc中的正则表达式验证手机号码

时间:2018-01-12 12:20:19

标签: c# regex asp.net-mvc model-view-controller data-annotations

我想验证一个11位手机号码,必须先有0和3,然后在03之后再多9位,例如03XXXXXXXXX

    [Column("ContactNo")]
    [Required(ErrorMessage = "Contact No is required..."), Display(Name = "Contact No")]
    [RegularExpression(@"^\[0]{1}\[3]{1}\d{9}$", ErrorMessage = "Invalid Contact No")]
    public decimal ContactNo { get; set; }

1 个答案:

答案 0 :(得分:2)

你的正则表达式的问题在于你在不需要时使用转义字符(这是反斜杠)。您唯一需要的是\d,它用于表示小数字符。

在这种特定情况下,\[表示您想要转义[的正常用法并将其视为文字字符。

因此您需要删除方括号前使用的反斜杠。因此\[应该成为[

但是,当您需要单个文字字符时,甚至不需要使用方括号,例如,您可以自己使用03

考虑到所有这些,以下正则表达式应该符合您的要求:

^03\d{9}$

你可以see this in action here

我建议您花一些时间阅读有关转义字符以及何时何地使用它们的信息。 This may be a good place to start,虽然肯定有很多好的资源。