首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

个正则

2012-03-22 
求助个正则/^((0[1-9]{3})?(0[12][0-9])?[-])?\d{6,8}$/]谁能帮忙详细解说下。。[解决办法]分段理解吧,不算

求助个正则
/^((0[1-9]{3})?(0[12][0-9])?[-])?\d{6,8}$/]
  谁能帮忙详细解说下。。

[解决办法]
分段理解吧,不算太复杂:

可能不好理解的内容:
^:匹配字符串起始
[1-9]{3}:1~9数字,精确的需要出现3个

$:匹配字符串结束

分段解释:
(0[1-9]{3})?:以0开头,后面跟3个数字,但这整个内容可能有也可能没有
(0[12][0-9])?:以0开头,后面跟着1或者2,然后再来数字0~9,这整个内容可能有也可能没有
((0[1-9]{3})?(0[12][0-9])?[-])?:这整个内容都可能没有
\d{6,8}:数字,6~8位

总的来说,就是个判断带区号的固定电话检查,但有漏洞。漏洞就是允许出现这种号码:
0777011-12345678 这个显然是非法的电话号码

热点排行
Bad Request.