我研究了一下我国电话号码的正则表达式,但是有些内容还没有解决。
这里的规则是:
我做错的事情是,
这里的规则是:
(区号)前缀-后缀
- 区号可以是3到5位数字
- 前缀可以是2到4位数字。
- 区号+前缀共7位数字。
- 后缀始终为4位数字。
- 总共11位数字。
/(\(?\d{3}\)?[- .]?\d{4}[- .]?\d\d\d\d)|(\(?\d{4}\)?[- .]?\d{3}[- .]?\d\d\d\d)|(\(?\d{5}\)?[- .]?\d{2}[- .]?\d\d\d\d)/
我做错的事情是,
\d\d\d\d
不仅匹配后缀的 4 个数字,例如:(011) 4740-5000 是一个有效的电话号码,并且正常工作,但如果添加额外数字它也会返回为有效的电话号码,例如:(011) 4740-5000000000。
\d\d\d\d
。而aX|bX|cX
其实可以简化为(a|b|c)X
。另外,为什么要使用\d\d\d\d
而不是\d{4}
? - MSalters