我想验证一个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; }
答案 0 :(得分:2)
你的正则表达式的问题在于你在不需要时使用转义字符(这是反斜杠)。您唯一需要的是\d
,它用于表示小数字符。
在这种特定情况下,\[
表示您想要转义[
的正常用法并将其视为文字字符。
因此您需要删除方括号前使用的反斜杠。因此\[
应该成为[
。
但是,当您需要单个文字字符时,甚至不需要使用方括号,例如,您可以自己使用0
和3
。
考虑到所有这些,以下正则表达式应该符合您的要求:
^03\d{9}$
我建议您花一些时间阅读有关转义字符以及何时何地使用它们的信息。 This may be a good place to start,虽然肯定有很多好的资源。