现有这样的一个字符串
[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}]|3|^
[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}]|24|^
[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]|26|最终要得到的结果是:[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}][{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}][{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]
这样的三个字符串    并且能得到每条字符串后面    | |  中间的这个值  例如   第一条后面的  3  第二条后面的  24
也就是当某个条件等于   3  的时候   我会用第一个字符串等于   24   的时候  我会用第二个字符串

解决方案 »

  1.   

    str.split('|'), 出来的数组,偶数是数组数据,奇数是你要的||中的值
      

  2.   

    用正则表达式解析这个字符串把,类似于|3|这样的数字都提取出来重新构造一个json字符串结构大致如下
    {id:3,result:[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}]}{id:24,result:[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}]}{id:26,result:[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]}然后构成一个jsonobject
    之后你可以取对应的id的result
      

  3.   

    <script type="text/javascript">
    var str = '[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}]|3|^[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}]|24|^[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]|26|';
    var arr = str.split('^'), arrResult = new Array();
    for( var i = 0; i < arr.length; i ++) arrResult.push(arr[i].split('|'));function s(n) {
    for (var i = 0; i < arrResult.length; i ++) {
    if (arrResult[i][1] == n) return arrResult[i][0];
    }
    return false;
    }
    alert(s(24));
    </script>
      

  4.   


    麻烦问一下   像你这样写     id:  的这个值是我拼串的时候 传进去的
    比如说   var iid = 这个id 的值时
    我该如何取到跟这个 id  对应的result 呢
      

  5.   

    其实理想的状态应该是拼成这样的形式
    {3:[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}],24:[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}],26:[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]}然后转换成json对象
    大致转法是这样
    obj=上面的字符串;
    obj=eval('('+obj+')')
      然后你要取3的时候就result=obj[3],就可以了,如果不行就把key都用字符串表示吧'3'什么的,数字应该是可以的如果像上面id这样的做法就要遍历jsonobject的key 这个网上搜一下遍历json的key就可以了 
    最终大致就是if(obj.id==3){alert(obj.result);}就是你要的
      

  6.   


    <script>
    var str = '\
    [{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}]|3|^\
    [{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}]|24|^\
    [{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]|26|\
    ';var json = Function("return {" + str.replace(/(\[[^\]]+\])\|([^\|]+)\|[^\[]?/g, "$2:$1,").replace(/,$/, "}"))();alert("姓名:" + json[24][0].name);
    alert("芳龄:" + json[24][0].age);
    </script>
    上面json = {
             3:[{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}],
             24:[{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}],
             26:[{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]
    }
      

  7.   

    var json = Function("return {" + str.replace(/(\[[^\]]+\])\|([^\|]+)\|[^\[]*/g, "$2:$1,").replace(/,$/, "}"))();修改? ==> *
      

  8.   


    <script>
    var str = '\
    [{name:"alice",age:"23"},{name:"lilei",age:"19"},{name:"luxi",age:"22"}]|3|^\
    [{name:"lili",age:"20"},{name:"wang",age:"21"},{name:"zhang",age:"20"}]|24|^\
    [{name:"xiaoming",age:"18"},{name:"tom",age:"20"},{name:"mike",age:"24"}]|26|\
    ';var json = Function("return {" + str.replace(/(\[[^\]]+\])\|([^\|]+)\|[^\[]*/g, "$2:$1,").replace(/,$/, "}"))();alert("姓名:" + json[24][0].name);
    alert("芳龄:" + json[24][0].age);
    </script>