web前端之JavaScript正则表达式

来源:互联网 发布:电驴服务器端口 编辑:程序博客网 时间:2024/05/12 15:15

web前端之JavaScript正则表达式

后面有代码:

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

\d 表示数字\d? ?表示0个或者一个\d+ +表示一个或者多个\d{3} 表示三个\d{3,5} 表示三到五个\d{3,} 表示至少出现3次\d* *表示0到任意个\b 表示单词边界\B 表示非单词边界\bis\b 表示查找“ is ”的. 表示任意字符\ 表示转译http:(\/\/.+\.jpg) 用()进行分组$1 获取其内部东西[]表示或^表示开头$表示结尾g表示全局\d{4}[/-]\d{2}[/-]\d{2}\w 表示一个单词字符字面量:var reg=/\bis\b/g;构造函数:var reg=new RegExp('\\bis\\b','g');修饰符:g:global全文搜索;不添加,搜索到第一个匹配停止i:ignore case忽略大小写,不添加,大小写敏感m:multiple lines多行搜索子符类:'a1b1c1d3f3'.replace(/[abc]/g,'X')字符类取反:'a1b1c1d3f3'.replace(/[^abc]/g,'X')范围类:'a1b1c1d1f1e1asd'.replace(/[a-z]/g,'Q');很多个范围类:'a1b1c1d1f1e1asdABGS123BGJS'.replace(/[a-zA-Z]/g,'Q');在选择多个范围类的时候需要匹配“-”,那就在最后添加“-”就可以了:'2010-07-08'.replace(/[0-9-]/g,'A');预定类:匹配一个 ab+数字+任意字符  的字符串:ab\d.边界:'This is a boy'.replace(/\Bis\b/g,'0')@开始:'@123@abc@'.replace(/^@./g,'Q')@结束:'@123@abc@'.replace(/.@$/g,'Q')多行匹配:'@123@456@789'.replace(/^@\d/gm,'X')量词:\d 表示数字\d? ?表示0个或者一个\d+ +表示一个或者多个\d{3} 表示三个\d{3,5} 表示三到五个\d{3,} 表示至少出现3次\d* *表示0到任意个正则表达式贪婪模式:'12345678'.replace(/\d{3,6}/g,"A");非贪婪模式(后面加一个“?”就可以了):'123456789'.match(/\d{3,5}?/g)分组:'a1b1c1d1'.replace(/[a-z]\d{3}/g,"X")"a1b1c1d1"'a1b1c1d1'.replace(/([a-z]\d){3}/g,"X")"Xd1"或:'AbcdEf'.replace(/Abcd|Ef/g,'X');"XX"'AbcdEfAbabEf'.replace(/Ab(cd|ab)Ef/g,'X');"XX"反向引用:'2016-12-21'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'$2-$3-$1')"12-21-2016"前瞻(前面一个单词字符后面一个数字):'a2*3'.replace(/\w(?=\d)/g,'X')"X2*3"'a2*34V8'.replace(/\w(?=\d)/g,'X')"X2*X4X8"'a2*34VV'.replace(/\w(?=\d)/g,'X')"X2*X4VV"'a2*34VV'.replace(/\w(?!\d)/g,'X')"aX*3XXX"对象属性:g:global全文搜索;不添加,搜索到第一个匹配停止i:ignore case忽略大小写,不添加,大小写敏感m:multiple lines多行搜索lastIndex:是当前表达式匹配内容的最后一个字符的下一个位置source:正则表达式的文本字符串test方法:var reg1=/\w/;var reg2=/\w/g;reg1.test('a');truereg1.test('$');falsereg2.test('a');truereg2.test('a');falsereg2.test('a');truereg2.test('a');falsewhile(reg2.test('ab')){    console.log(reg2.lastIndex);}exec方法:非全局调用:var reg3=/\d(\w)\d/;var reg4=/\d(\w)\d/g;var ts='1a2b3c4d5e';var ret=reg3.exec(ts);console.log(reg3.lastIndex + '\t' +ret.index+ '\t' + ret.toString());console.log(reg3.lastIndex + '\t' +ret.index+ '\t' + ret.toString());while(ret=reg4.exec(ts)){    console.log(reg4.lastIndex + '\t' +ret.index+ '\t' + ret.toString());}0   0   1a2,a0   0   1a2,a3   0   1a2,a7   4   3c4,c非全局下lastIndex不生效toString()):第一个正则获取的字段,第二个正则中的分组的字段全局下:第一个数:第一次获取到之后的,下一个字符的位置第二个数:从第几个字符后获取到和正则匹配的第三个数:第一个正则获取的字段,第二个正则中的分组的字段字符串对象方法:var reg3=/\d(\w)\d/;var reg4=/\d(\w)\d/g;var ts='1a2b3c4d5e';var ret=ts.match(reg3);console.log(ret);console.log(ret.lastIndex + '\t' +ret.index+ '\t');ret=ts.match(reg4);var ret=ts.match(reg4);console.log(ret);console.log(ret.lastIndex + '\t' +ret.index+ '\t');'a1b2c3d4'.split(/\d/g)
0 0
原创粉丝点击