try:
var re = /性别:([^|]*)\|.*?时间:([^;]*)/g;

解决方案 »

  1.   

    如果要整个匹配呢?
    即得到: a   b   c   d 
    aaa bbb ccc ddd
    谢了!
    我这样做,不行???(str改为如下,即去掉了|号)
    var str = "姓名:a|性别:b|年龄:c|时间:d;姓名:aaa|性别:bbb|年龄:ccc|时间:ddd;";
    var re = /姓名:(.*?)性别:(.*?)年龄:(.*?)时间:(.*?);/g;
    用var succ = str.match(re);
    alert(succ.length);只能得到a ?
      

  2.   

    <script language="JavaScript">
    <!--
    var str = "姓名:a|性别:b|年龄:c|时间:d;姓名:aaa|性别:bbb|年龄:ccc|时间:ddd;";
    var re = /姓名:([^|]*)\|性别:([^|]*)\|年龄:([^|]*)\|时间:([^|]*);/g;var succ = str.match(re);
    var arr = [];
    var temp;
    if(succ){
    for(i = 0; i < succ.length; i++){
    temp = succ[i].match(re);
    if(temp) arr[i] = new Array(RegExp.$1,RegExp.$2,RegExp.$3,RegExp.$4);
    }
    }
    alert(arr.join('\n'))
    //-->
    </script>
      

  3.   

    str改为如下,即去掉了|号:
    var str = "姓名:a性别:b年龄:c时间:d;姓名:aaa性别:bbb年龄:ccc时间:ddd;";
    var re = /姓名:(.*?)性别:(.*?)年龄:(.*?)时间:(.*?);/g;这样为什么不行???
      

  4.   

    var re = /姓名:([^|]*)\|性别:([^|]*)\|年龄:([^|]*)\|时间:([^|]*);/g;是什么意思?