正则表达电话号码(一)(1000则)

前言

我整理的1000则,正则表达式,方便一起交流。

正文

假如我们要匹配一窜电话号码,比如说:
707-827-7019

我们该如何匹配它?

首先,我们确定,我们输入:707-827-7019

那么肯定是可以匹配的。

接下来:我们发现只有数字和-字符。

那么[0-9]{3}-[0-9]{3}-[0-9]{4}

像上面这样匹配。

接下成了[0-9]{3}.[0-9]{3}.[0-9]{4}

联想到[0-9] 就是\d,\d是数字的意思。

-其实是一个非数字,那么可以用/D来表示非数字啊。

成了下面这样:\d{3}\D\d{3}\D\d{4}

然后发现/d{3} 与/d{3} 重复了,这就肯定有优化手段的。

^(\d{3}[.-]?){2}\d{4}$ 这样就解决了重复。我在这里把\D换成了[.-]这是因为,这样更加精确。[.-]?>\d>.。同样我在前面和后面添加了^与$,分别代表以什么开头,

和以什么结尾,添加限制。

同样这上面考虑到的是带区号的,但是我们依然要考虑下面这两种:

(707)827-7019
827-7019

有些人写电话号码,不写区号,或者说人家的区号是写括弧的。
那么要兼容啊。

^(\(\d{3}\)|^\d{3}[.-]?)?\d{3}[.-]?\d{4}

总结

正则在于一个先松后紧,然后松的过程。
先匹配出来,然后在一个例子上添加条件,最后更加匹配多个例子,然后放松条件。

posted @ 2020-04-20 22:17  敖毛毛  阅读(556)  评论(0编辑  收藏  举报