<script language=javascript>
str="aaa china china begin begin end so as it aaa hello my name is so very good "
re=/(?=aaa)(.+?)(?=aaa|.$)/g
strArray=str.match(re)
for(var i=0;i<strArray.length;i++)
{
alert(strArray[i])
}
</script>

解决方案 »

  1.   

    第一个预查是没有必要的。因为第一个aaa是需要被匹配的,预查了,还是要被“.+”匹配,直接写"aaa",就不被“.+”匹配,最后结果是一样的。
    另外,后一个预查,不要用"aaa|.$",直接用"aaa|$", hbhbhbhbhb1021的用法会丢失最后一个字符
    <script language=javascript>
    str="aaa china china begin begin end so as it aaa hello my name is so very good"
    //re=/(?=aaa)(.+?)(?=aaa|.$)/g
    re=/aaa.+?(?=aaa|$)/g
    strArray=str.match(re)
    for(var i=0;i<strArray.length;i++)
    {
    alert(strArray[i])
    }
    </script>