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

标签 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 bla bla' ]
         ];

我考虑使用正则表达式来查找列表的索引,如下所示:

/\w\)\s/gi

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

最佳答案

好的,您可以通过拆分或匹配来完成此操作。我寻求一个解决方案,不依赖 ) 始终作为分隔符。相反,我正在寻找零长度前瞻中非常具体的空白、字母、)、空白模式。因此,大多数可能使用的括号如“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) 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] ];
}

关于Javascript 在二维数组中分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17459998/

相关文章:

javascript - 在第一个文本框中输入时,在第二个文本框中获取 mysql 数据

php - 从一个选择选项值中获取多个值。 PHP HTML

javascript - 类型错误 : Type error in Javascript when assigning a value to a multidimensional Array

javascript - 如何创建 "object"javascript 属性

javascript - 是否可以从 XML 数据生成 HTML 5 页面?

python - 更改不在索引列表中的 NumPy 数组的值

java - 将数组写入 CSV 文件 - Java

java - 如何在 Java 中复制二维数组?

python - 如何在Python中将一维径向轮廓转换为二维数组

javascript - jQuery 验证和 AJAX 提交表单如何编写 e.preventDefault();