八一八正则表达式
以前用正则表达式直接网上一搜,也不懂中间的规则,今天项目出点问题,网上的号码匹配和项目需求不合,于是仔细看了下,趁热打铁,来一发。
还是先上例子:
电话号码正则匹配
/^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/
这段正则的有几个意思捏?来 一个一个看
/......./ 正则好像都是这样开头的结尾的
^这个表示第一个匹配字符串开始
括号嘛 这个大家都懂噻 在这里当然表示分组了,但要注意 “\(” “\)” 这个表示匹配左右括号,毕竟\大多数情况下时表示转义的;
“0” 第一个数字是0;
“[0-9]”第二个数字0-9 其实也可以用\d 匹配 \d 表示匹配数字;
{2,3}重复数字2到3次;
\- 转义的;
?表示重复前面括号里面那货0次或一次,通俗的说就是前面括号里面的可要可不要,要的话最多出现1次;
后面的照旧啊,表示可以用”-“加一位或者四位的分机号 ;
最后的$表示最后匹配。
写在后面:
最后来一点感慨,正则这东西,不用刻意去记那些规则,多写几遍,自然会懂,规则呢很多,没记住正常。