// ---------- JavaScript RegExp ---------- /* 语法: const patt=new RegExp(pattern,modifiers) 或 const patt=/pattern/modifiers pattern(模式) 描述了表达式的模式 modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配 */ // 修饰符 - 用于执行区分大小写和全局匹配: /* i 执行对大小写不敏感的匹配。 g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 m 执行多行匹配。 */ // 方括号 - 用于查找某个范围内的字符: /* [abc] 查找方括号之间的任何字符。 [^abc] 查找任何不在方括号之间的字符。 [0-9] 查找任何从 0 至 9 的数字。 [a-z] 查找任何从小写 a 到小写 z 的字符。 [A-Z] 查找任何从大写 A 到大写 Z 的字符。 [A-z] 查找任何从大写 A 到小写 z 的字符。 [adgk] 查找给定集合内的任何字符。 [^adgk] 查找给定集合外的任何字符。 (red|blue|green) 查找任何指定的选项。 */ // 元字符 - 是拥有特殊含义的字符: /* . 查找单个字符,除了换行和行结束符。 \w 查找数字、字母及下划线。 \W 查找非单词字符。 \d 查找数字。 \D 查找非数字字符。 \s 查找空白字符。 \S 查找非空白字符。 \b 匹配单词边界。 \B 匹配非单词边界。 \0 查找 NULL 字符。 \n 查找换行符。 \f 查找换页符。 \r 查找回车符。 \t 查找制表符。 \v 查找垂直制表符。 */ // 量词 /* */ console.log('caandyazaaaa'.match(/a{1}/g)) const yuan_str_0 = ' J G s $ % ^ 2f & 9 % g _ - + = ' const yuan_reg_1 = /\s/g console.log(yuan_str_0.match(yuan_reg_1), yuan_str_0.match(yuan_reg_1).length) // [ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' ] 18 const yuan_reg_00 = /\W/g console.log(yuan_str_0.match(yuan_reg_00)) // [ ' ', ' ', ' ', ' ', ' ', '$', ' ', '%', ' ', '^', ' ', ' ', '&', ' ', ' ', '%', ' ', ' ', ' ', '-', ' ', '+', ' ', '=', ' ', ' '] const yuan_reg_0 = /\w/g console.log(yuan_str_0.match(yuan_reg_0)) // [ 'J', 'G', 's', '2', 'f', '9', 'g', '_' ] const yuan_str_1 = "Thish isn't a good idea !" const yuan_reg_10 = /\bis/g console.log(yuan_str_1.match(yuan_reg_10)) let text_b_0 = "HELLO, LOOK AT YOU" // let pattern_b_0 = /\bLO/ // let pattern_b_01 = /LO\b/ // const pt = text_b_0.match(pattern_b_0) // console.log(pt, pt.length, pt[0], pt.join()) // [ 'LO', index: 7, input: 'HELLO, LOOK AT YOU', groups: undefined ] 1 LO LO // console.log(text_b_0.match(pattern_b_01)) let pattern_b_1 = /\BLO/ console.log(text_b_0.match(pattern_b_1)); let text_b_1 = `LOHELLO, LOOK LOAT YOU` const pat1 = /^LO/mg console.log(text_b_1.match(pat1)) // [ 'LO' ] text_b_1 = `LOHELLO, LOOK LOAT YOU` pat1 = /^LO/mg console.log(text_b_1.match(pat1)) // [ 'LO', 'LO', 'LO' ] pat1 = /OU$/ console.log(text_b_1.match(pat2)) // [ 'OU', index: 21, input: 'LOHELLO, \nLOOK\nLOAT YOU', groups: undefined ] console.log('1234'.replace(/^|$/g, '❀')) // "❀1234❀" var str = "Is this all is there isth" // 匹配 后面紧跟" t"的is var patt1 = /is(?= t)/ console.log(str.match(patt1)) // 匹配 后面没有紧跟" t" 的is patt1 = /is(?! t)/ console.log(str.match(patt1)) patt1 = /(?=(\d{3})+$)/g console.log( '12345678'.replace(patt1, ',') ) // 12,345,678 console.log( '123456789'.replace(patt1, ',') ) // ,123,456,789 console.log( '0.12345678'.replace(patt1, ',') ) // 0.12,345,678 console.log( '1234.12345678'.replace(patt1, ',') ) // 1234.12,345,678 console.log( '123456.12345678'.replace(patt1, ',') ) // 123456.12,345,678 console.log(/^123$/.test(' 123 ')) // console.log(/^123$/.test(' 124563 ')) // console.log(/^123/.test('12 1234563 ')) // console.log('object'.match(/[a-f]/g)); // [ 'b', 'e', 'c' ] console.log('object'.match(/(a|b|e)/g)); // [ 'b', 'e' ] console.log('object'.match(/t$/)) console.log('50'.match(/[1-6]/)) console.log('56'.match(/[1-5]6/)) var str = 'aaabbb'; var reg = /(a+)(?:b+)/; var res = reg.exec(str); console.log(res) //["aaabbb", "aaa", index: 0, input: "aaabbb"] //只捕获第一个小分组的内容 var str = 'aaabbb'; var reg = /(a+)(b+)/g; var res = reg.exec(str); console.log(res) var str = '123aaa456'; var reg = /\d+/g; //只捕获一次,一次尽可能多的捕获 var res = str.match(reg) console.log(res) var str = 'abc123cba456aaa789'; var reg = /\d+/g; console.log(reg.exec(str)) // console.log(str.match(reg)); // ["123", index: 3, input: "abc123cba456aaa789"]; console.log(reg.lastIndex) // lastIndex : 0 console.log(reg.exec(str)) console.log(reg.lastIndex) // exec var str = '2017-01-05'; var reg = /-(\d+)/g console.log(reg.exec(str)); // ["-01", "01", index: 4, input: "2017-01-05"] // "-01" : 正则捕获到的内容 // "01" : 捕获到的字符串中的小分组中的内容 var str = '2017-01-05' var reg = /-\d+/g console.log(reg.exec(str)) // [ '-01', index: 4, input: '2017-01-05', groups: undefined ] console.log(reg.exec(str)) // [ '-05', index: 7, input: '2017-01-05', groups: undefined ] console.log(str.match(reg)) // [ '-01', '-05' ] var str = '2017-01-06'; str = str.replace(/-\d+/g, function () { console.log(arguments) // return '!!!' }) console.log(str); var str = "I am singing and dancing" var reg = /\w+(?=ing)/g console.log(str.match(reg)) var reg = /\w+(?!ing)/g console.log(str.match(reg)) var str = 'abc' var reg = /a(?=b)c/ console.log(str.match(reg)); console.log(reg.test(str)); str = 'abc bbc cbc aba' reg = /\w+(?!c)/g console.log(str.match(reg)) var str = 'nodejs abjs ab as' var reg = /\w+(?!js)/g console.log(str.match(reg)) console.log( '12345689.56'.match(/\d{2,3}/g) ) // var str = 'dasf¥998asf@888we' var reg = /(?<=@)\d+/ console.log(reg.exec(str)) //888 var reg = /(?<!@)\d+/ console.log(reg.exec(str)) //888 var s = "abcdefghijklmn"; var r = /(\w)(\w)(\w)/; r.test(s); console.log(RegExp.$1); //返回第1个子表达式匹配的字符a console.log(RegExp.$2); //返回第2个子表达式匹配的字符b console.log(RegExp.$3); //返回第3个子表达式匹配的字符c
标签:console,log,汇总,js,str,var,RegExp,reg,match From: https://www.cnblogs.com/-roc/p/17296567.html