这种语法是很奇怪的
.+是匹配一个或多个字符
而?是有或没有字符

解决方案 »

  1.   

    你到底想要什么效果吗?说来听听
      

  2.   

    默认情况下+,*是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>