我想制作正则表达式来验证只有两个条件的电话号码的长度。首先应该是10个长度。
字符串的长度应为10位,可以是
之类的任何数字 4345623467
如果字符串的长度为11,那么应该以1开始。
14345623467
长度可以是10或11.其他长度不应该有效
感谢您的帮助。
答案 0 :(得分:5)
更简单的一个:可选1
后跟10位
/^1?\d{10}$/
答案 1 :(得分:1)
以下正则表达式匹配以" 1"开头的10或11位数的序列。或任何正好十位数的序列:
/^(?:1\d{9,10}|\d{10})$/
以下是它如何分解,以便您可以通过正则表达式变得更强大:
/^(?:1\d{9,10}|\d{10})$/
│├─┘ ├──────┘ ├────┘ └ The end of the string.
││ │ └ Any digit repeated exactly ten times.
││ └ Any digit (0-9) repeated nine or ten times.
│└ A non-matching group of two possible matches separated by a pipe (?:...|...)
└ The start of the string.
答案 2 :(得分:0)
应该这样做:
/^(\d{10}|1\d{10})$/