var re = /#[\da-f]{6}/ig; var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee #fd2 "
console.log( subj.match(re) ); // #121212,#AA00ef
8.下面代码输出什么? 为什么? 改写代码,让其输出hunger, world.
1 2 3
var str = 'hello "hunger" , hello "world"'; /*var pat = /".*"/g; console.log(str.match(pat));//""hunger" , hello "world""贪婪模式,尽可能多的匹配字符串,。代表任意字符,尽可能多的查找任意字符,一直到结束,然后回溯查找“,所以输出"hunger" , hello "world"
修改正则,贪婪模式
1 2 3
var str = 'hello "hunger" , hello "world"'; var pat = /"[^"]*"/g; console.log(str.match(pat));
修改正则,非贪婪模式
1 2 3
var str = 'hello "hunger" , hello "world"'; var pat = /".*?"/g;*/ console.log(str.match(pat));
9.补全如下正则表达式,输出字符串中的注释内容. (可尝试使用贪婪模式和非贪婪模式两种方法)
1 2 3 4 5 6 7 8 9 10
var str = '.. <!-- My -- comment \n test --> .. <!----> .. '; var re = /<!--[\s\w\-]*-->/g; var re1 = /<!--[^>]*-->/g; var re3 = /<!--[^>]*-->/g; var re2 = /<!--[\w\W]*?-->/g;//三种方法均可以实现
console.log(str.match(re)); // '<!-- My -- comment \n test -->', '<!---->' console.log(str.match(re1)); console.log(str.match(re2));