如何在 mvc 中使用正则表达式验证单元格 phone 编号

How to validate cell phone number using regular expression in mvc

我想验证一个 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; }

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

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

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

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

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

^03\d{9}$

你可以see this in action here.


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