正则表达式-梳理
先贴上两个地址,正则表达式的生成工具,第三个是正则表达式的生成图文解析,并测试正确与否
1,http://www.bejson.com/othertools/regex_create/
2,http://tool.oschina.net/regex/#
手机号:
var pattern = /^0?(13|14|15|18)[0-9]{9}$/; var str = "13913954321"; console.log(pattern.test(str));
邮箱:var pattern = /w[-w.+]*@([A-Za-z0-9][-A-Za-z0-9]+.)+[A-Za-z]{2,14}/;
qq: var pattern = /[1-9]([0-9]{5,11})/;
网址:var pattern = /^((https|http|ftp|rtsp|mms)?://)[^s]+/;
身份证号: var pattern = /\d{17}[\d|x]|\d{15}/;
日期格式:var pattern = /\d{4}(-|/|.)\d{1,2}\d{1,2}/;
中文数字或字母: var pattern = /[A-Za-z0-9_-\u4e00-\u9fa5]+/;
一,构造函数
var reg = new RegExp('\\bis\\b');
二,字符类,用[]构建简单的类
'a1b3c4d7'.replace([\[abc]\g], 'P');
输出:'P1P3P4d7'
字符类取反
'a1b3c4d7'.replace([\[^abc]\g], 'P');
输出:'aPbPcPPP'
三,范围类【a-z】
四,预定义类
五.边界
eg:单词边界
'this is a boy'.replace(\bis\is, Q)
输出: ‘this Q boy’
六,量词
七,贪婪模式
八,分组
(boy){3}=> boy boy boy
boy{3} => boyyy
eg:用分组概念将2015-12-23转成 12/23/2015
‘2015-12-23’.replace(/(\d{4})-(\d{2})-(\d{2})/g, '$2$3$1')
输出:12-23-2015
九,前瞻
eg:单词字符后面是数据,只替换了前面字母
正向前瞻
负向前瞻
十,exce,match,splice用法 function