Heim  >  Fragen und Antworten  >  Hauptteil

javascript - javascrip字符串转数组

格式是:xxxx(yyy)(zzzzz)
可能有多个括号
转换为['xxxx',yyy,zzzzz]
有什么优雅的方法吗?

PHP中文网PHP中文网2748 Tage vor543

Antworte allen(4)Ich werde antworten

  • 阿神

    阿神2017-04-10 14:33:06

    (替换成,,把(替换成空字符串,然后用,分隔,看这样行么:

    var text = "xxxx(yyy)(zzzzz)";
    var arr = text.replace(/\(/g, ',').replace(/\)/g, '').split(',');
    console.log(arr); // ["xxxx", "yyy", "zzzz"]
    

    Antwort
    0
  • 高洛峰

    高洛峰2017-04-10 14:33:06

    text = "xxxx(yyy)(zzzzz)";
    Array.prototype.addItem = function(item){this.push(item);return this}
    var arr = text.match(/\((.+?)\)/g).map(function(v){return v.slice(1,-1)}).reverse().addItem(text.match(/.+?\(/)[0].slice(0,-1)).reverse();
    console.log(arr);
    

    从你的结果来看,yyy zzz应该是Number吧,只要在map的回调函数里面做下处理就好了。

    Antwort
    0
  • 阿神

    阿神2017-04-10 14:33:06

    正则表达式。

    Antwort
    0
  • PHP中文网

    PHP中文网2017-04-10 14:33:06

    用正则,看看还有没有优雅的,正确性有待验证

    var xx = "xxxx(yyy)(zzzzz)";
    var arr = xx.split(/(?:\)\(|\)|\()/);
    arr.pop();
    console.log(arr);
    

    Antwort
    0
  • StornierenAntwort