收藏
回答

问一下这样的字符串"['a','b']['c','d']"怎么转换数组?

问一下这样的字符串

var str = "['a','b'],['c','d']";

怎么转换成这样的

['a','b'],['c','d']

数组?

发现eval("([" + str + "])")用不了。。。

回答关注问题邀请回答
收藏

3 个回答

  • Yͯoͯuͯnͯgͯ
    Yͯoͯuͯnͯgͯ
    2021-12-18

    自己写的一个函数,不知道大佬有没有更好的办法

    var strDate = "['a','b'],['c','d'],['e','f']";
    //eval("([" + strDate + "])");
    console.log(str_to_arr(strDate));
    function str_to_arr(str){
        var a='',b=[];
        s = str.split('],[');
        //console.log(s.length);
        for(var i = 0;i < s.length;i++){
            //console.log(s[i]);
            if(i==0){
                a = s[i].substr(1);
                a = a.replace(/\'/g, "");
                a = a.replace(/\"/g, "");
                a = a.split(",");
                //console.log(a);
            }else if(i == Number(s.length-1)){
                //console.log('del');
                a = s[i].substr(0,s[i].length-1);
                a = a.replace(/\'/g, "");
                a = a.replace(/\"/g, "");
                a = a.split(",");
                //console.log(a);
            }else{
                a = s[i]
                a = a.replace(/\'/g, "");
                a = a.replace(/\"/g, "");
                a = a.split(",");
                //console.log(a);
            }
            b.push(a);
        }
        return b;
    }
    
    2021-12-18
    有用 1
    回复
  • 微盟
    微盟
    2021-12-20

    strDate.match(/\[.+?\]/g).map(e => e.replace(/\[|'|\]/g,'').split(','))

    2021-12-20
    有用
    回复
  • K
    K
    2021-12-20

    正则 match

    2021-12-20
    有用
    回复
登录 后发表内容