match() 匹配正则,没有g,执行一次匹配,没有找到任何文本返回 null,有则返回数组(包括 index、input 属性)。'xx22xxx12'.match(/d{2}/); 输出:["22", index: 2, input: "xx22xxx12"]如果有 g,匹配所有,返回数组,没有返回null'xx22xxx12'.match(/d{2}/g); 输出:(2) ["22", "12"]见 7、贪婪模式、非贪婪模式../../md/
Regular Expression使用单个字符串来描述、匹配一系列符合 某个句法规则 的字符串。翻译成人话:按照某种 规则 去匹配符合条件的字符串。推荐可视化图像工具:Regexperbobjb #obj 单词边界替换 sublime . #任意字符 http://(.+.png) #匹配 http://开始 .png结尾 $1为()内的内容../../md/正则表达式/
代 码说 明gglobal 全文搜索iignore case 忽略大小写,默认大小写灵敏mmultiple lines 多行搜索lastIndex匹配内容最后一个字符的下一次匹配位置source文本字符串.匹配除换行符以外的任意字符w匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。W匹配任何非单词字符 等价于 '1'。s
1、字面量var reg = /bisb/gi; //正则表达式文本写在两个/ /之间,g 全文匹配,i忽略大小写 'My name is ycmbcd,This is my name Is'.replace(reg, 'xxx');2、构造函数var reg = new RegExp('\bis\b', 'gi'); //字符串转义\为,i忽略大小写 'My name is ycmbcd,This is my name Is'.replace(reg, 'xxx');../../md/正则表达式/
字符含义t水平制表符v垂直制表符n换行符r回车符0空字符f换页符cX与X对应的控制字符(Ctrl+X)abt #ab + TabJs匹配[abc] abc中的一个'a1b2c3d4'.replace(/[abcd]/g, 'X');输出:"X1X2X3X4"取反1 abc中的一个'a1b2c3d4'.replace(/2/g, 'X');输出:"aXbXcXdX"abc ↩abcd ↩../../md/正则表达式/
// 匹配一个字母+数字连续出现3次 'a1b2c3d4xx'.replace(/[a-z]d{3}/g,'A'); 输出:"a1b2c3d4xx" 'a1b2c3d4xx'.replace(/([a-z]d){3}/g,'A'); 输出:"Ad4xx" "ycmbcd".replace(/ycm|bcd/g,'X'); 输出:"XX" "ycmcdycbcd".replace(/yc(m|b)cd/g,'X'); 输出:"XX" "2018-01-18".replace(/(d{4})-(d{2})-(d{2})/g,'$1年$2月$3日'); 输出:"20
解析是否符合断言:头部→尾部 (前瞻) 尾部→头部 (后顾)JavaScript不支持正向前瞻 exp(?=assert)w(?=d) 'a2*3'.replace(/w(?=d)/g,'X'); 输出:"X2*3" 'ab2*3'.replace(/w(?=d)/g,'X'); 输出:"aX2*3" 'ab-2*3'.replace(/w(?=d)/g,'X'); 输出:"ab-2*3"负向前瞻 exp(?!assert)'ab-2*33'.replace(/w(?!d)/g,'X'); 输出:"XX-X*3X"../../md/正则表
基于 javascript 语法规则匹配(/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/).test('ycmbcd@qq.com'); //邮箱匹配,只允许英文字母、数字、下划线、英文句号、以及中划线组成 (/^(13[0-9]|14[5|7]|15[0-9]|18[0-9]|17[0-9])d{8}$/).test('13777734538'); //手机匹配 (/^(d{3}-d{8}|d{4}-d{7})$/).test('021-1234567'); //电话号码(0511-1234567、021-12345678) (/^d{17}[dxX]$/).test('1234
test(str) 测试字符串是否匹配RegExp正则表达式返回 true / falsenew RegExp("W3School").test('Visit W3School'); 输出:true var reg = /wd{2}/; reg.test('w4'); 输出:false var reg = /wd{2}/; reg.test('w42'); 输出:true非 g 全局时,lastIndex 不生效。有 g 全局搜索时,由于有lastIndex属性。指针会从第一次的结果中依次类推。如果到末尾将重置为 1
replace() 替换,没有g,一次,有 g 全局'a2,b3,c4,d5'.replace(/d/g, 'x'); 输出:"ax,bx,cx,dx" 'a2,b3,c4,d5'.replace(/d/, 'x'); 输出:"ax,b3,c4,d5"函数替换,4个参数 function(匹配字符串,分组内容,index,原字符串)'a1b2c3d4e5'.replace(/d/g, function(match, index, origin){ console.log(index); return parseInt(match) + 1; }); 输出:1 3 5 7 9