Javascript在二维数组中拆分字符串

Javascript在二维数组中拆分字符串,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我想在二维数组中拆分字符串 我的数组如下所示: var str = 'a) first sentence without fixed lenght b) second phrase c) bla bla bla' 我需要的返回数组如下所示: var arr =[ [ 'a', 'first sentence without fixed lenght' ], [ 'b', 'second phrase' ], [ 'c', 'bla b

我想在二维数组中拆分字符串

我的数组如下所示:

var str = 'a) first sentence without fixed lenght b) second phrase c) bla bla bla'
我需要的返回数组如下所示:

var arr =[
          [ 'a', 'first sentence without fixed lenght' ],
          [ 'b', 'second phrase' ],
          [ 'c', 'bla bla bla' ]
         ];
我考虑使用正则表达式来查找列表的索引,如下所示:

/\w\)\s/gi

然后分割字符串,但没有成功。有人能帮我吗?

这里有一个简单的方法:

var ray= 'a) first sentence without fixed lenght b) second phrase c) bla bla bla'
.split(/(\w)\) /)
.slice(1)
.map(function(a,b,c){if(b%2){ return [c[b-1],a] }})
.filter(Boolean);

alert(JSON.stringify(ray, null, "\t"));

   /* shows: 
 [
    [
        "a",
        "first sentence without fixed lenght "
    ],
    [
        "b",
        "second phrase "
    ],
    [
        "c",
        "bla bla bla"
    ]
]
*/

好的,你可以用劈叉或火柴来做。我寻求一个解决方案,不指望)永远是一个分隔符。相反,我在寻找一种非常特殊的空白模式,字母,),零长度的空白。所以最有可能的括号用法是“D”(耳语)“可以,[D)匹配s)不可以

var str = 'a) first sentence without fixed lenght b) second phrase c) bla bla bla';
var re = /(?=\s\w\)\s)/g;
var myArray = str.split(re);
var text;
var parenIndex;
// the result is = myArray[ 'a) first ...', 'b) second ... ', 'c) third ...' ];

for (var i = 0, il = myArray.length; i < il; i++) {
    text = myArray[i];
    parenIndex = text.indexOf(')'); // get first instance of )
    myArray[i] = [ text.substring(0, parenIndex - 1), text.substring(parenIndex + 1) ];
}
// the result is = myArray[ ['a', 'first ...'], ['b', 'second ... '], ... ];
var str='a)没有固定长度的第一句b)第二个短语c)bla bla bla bla';
变量re=/(?=\s\w\)\s)/g;
var myArray=str.split(re);
var文本;
var-parenIndex;
//结果是=myArray['a)first…','b)second…','c)third…'];
对于(var i=0,il=myArray.length;i
一种更简单、更不可靠的方法如下。它假定)始终是一个delimeter

var str = 'a) first sentence without fixed lenght b) second phrase c) bla bla bla';
var re = /(?=\w\))|\)/g;
var myArray = str.split(re);
var newArray = new Array(myArray.length / 2);

for (var i = 0, il = myArray.length; i < il; i += 2) {
    newArray[i / 2] = [ myArray[i], myArray[i + 1] ];
}
var str='a)没有固定长度的第一句b)第二个短语c)bla bla bla bla';
变量re=/(?=\w\)\124;\)/g;
var myArray=str.split(re);
var newArray=新数组(myArray.length/2);
对于(var i=0,il=myArray.length;i
我尝试了你的第二种方法,它非常有效,但在第3行中,正确的语法是:str.split(re);for是:for(变量i=0,下一行中有一个右括号要添加…;)在数组中存储变量时,我还添加了一个trim()。@Danilo:谢谢您的反馈。