默认情况下+,*是greedy模式,即尽可能多的匹配所搜索的字符串,而+,*后加?是最小匹配模式,即ungreedy模式.即一旦找到符合匹配的模式(最小程度)即认为匹配结束.体会如下代码: <SCRIPT LANGUAGE="JavaScript"> var a = "abcdefg\nefg"; var p = /b.+/; var pu = /b.+?/;alert('/b.+/ IN "' + a + '"\n==>' + a.match(p)[0]); //匹配出符合.+所有内容 alert('/b.+?/ IN "' + a + '"\n==>' + a.match(pu)[0]); //匹配出最小符合.+的内容 </SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
var a = "abcdefg\nefg";
var p = /b.+/;
var pu = /b.+?/;alert('/b.+/ IN "' + a + '"\n==>' + a.match(p)[0]); //匹配出符合.+所有内容
alert('/b.+?/ IN "' + a + '"\n==>' + a.match(pu)[0]); //匹配出最小符合.+的内容
</SCRIPT>