求一个正则表达式,把“pageNo:1keyWord:智联招聘searchEngine:搜搜”中红色部分显示出来,pageNo为数字,keyWord,searchEngine为任意字符串,/pageNo:([0-9]*)keyWord:((\w|[\u4E00-\u9FA5])*)searchEngine:((\w|[\u4E00-\u9FA5])*)$/这个匹配出来的好奇怪,JS中有没有像java的group中那样的很方便。JavaScript正则

解决方案 »

  1.   

    有啊,楼主认真看下js的正则吧。。    var s = "pageNo:1keyWord:智联招聘searchEngine:搜搜";
        var m = /pageNo:([0-9]*)keyWord:((\w|[\u4E00-\u9FA5])*)searchEngine:((\w|[\u4E00-\u9FA5])*)$/.exec(s);
        if (m) {
            alert(m[1])
            alert(m[2])
            alert(m[4])
        }
        else alert('没有匹配!');
      

  2.   

    <script type="text/javascript"> 
    var source="pageNo:1keyWord:一呼百应searchEngine:搜搜百度";
    var pattern=/pageNo:([0-9]*)keyWord:((\w|[\u4E00-\u9FA5])*)searchEngine:((\w|[\u4E00-\u9FA5])*)$/;var result=source.match(pattern);
    alert(result[1]);
    alert(result[2]);
    alert(result[4]);
    </script>
    我也是这样的,我想为什么只有1,2,4那怎么会匹配到0,3,5那些呢?
      

  3.   

    只要你给的字符串格式不变,内容无论是什么,下标都不用变
    0 匹配的是整个字符串
    3 匹配第二段大括号中的(\w|[\u4E00-\u9FA5])就是你第二段文字的最后一个字
    5 跟3同理<script type="text/javascript">
    var str="pageNo:1keyWord:智联招聘searchEngine:搜搜";
    var source="pageNo:1keyWord:一呼百应1searchEngine:搜搜百度";
    var reg=source.match(/^pageNo:([\d]*)keyWord:((\w|[\u4E00-\u9FA5])*)searchEngine:((\.|[\u4E00-\u9FA5])*)$/);
    alert(reg[1]);
    alert(reg[2]);
    alert(reg[4]);
    </script>