-1

我想用正则表达式来验证电话号码的长度,只有两个条件。首先它的长度应该是 10。

该字符串的长度应为 10 位,可以是任何数字,例如

          4345623467

如果字符串长度为 11,则应以 1 开头。

          14345623467

长度可以是 10 或 11。其他长度不应该是有效的

谢谢你的帮助。

4

3 回答 3

5

一个更简单的:可选1后跟 10 位数字

/^1?\d{10}$/
于 2012-10-18T17:03:54.237 回答
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.
于 2012-10-18T16:58:42.700 回答
0

那应该这样做:

/^(\d{10}|1\d{10})$/
于 2012-10-18T17:02:03.013 回答