JS 非贪婪模式详解
首先, 先理解下概念: 非贪婪模式 即在正则后加问号"?" 意义为按需匹配,
不明白, 我们先往下看
共用函数:
// 即为字符串高亮为红色function hightlight(str){ return "<font color=red>"+str+"</font>";}
var reg = new RegExp('(a+)'); // a+为 一到多个a匹配var str = 'aaa';var newstr = str.replace(reg, hightlight);document.write(newstr + "<br/>");
var reg = new RegExp('(a+)'); // a+为 一到多个a匹配var str = 'aaa';var newstr = str.replace(reg, "<font color=red>$1</font>"); //$1 表示正则中匹配括号内的内容的第一个document.write(newstr + "<br/>");
var reg = new RegExp('(a+?)'); // 加上?号后为非贪婪模式, 即匹配完成即返回, 不继续var str = 'aaa';var newstr = str.replace(reg, hightlight);document.write(newstr + "<br/>");
var reg = new RegExp('(a*?b)');var str = 'aaab';var newstr = str.replace(reg, hightlight);document.write(newstr);