如何将字符串转换为数组?

4

我有以下数组:

var mystr = "Name[Daniel],Name2[Alguien],Date[2009],Date[2014]";

如何将它转换为以下这样的数组:
var array = ['Daniel','Alguien','2009',2014];

通过 split("-") 将其拆分为数组,然后使用正则表达式提取值。 - Sterling Archer
1
[在花括号“{我想要花括号中的内容}”之间获取字符串的正则表达式](https://dev59.com/V3RC5IYBdhLWcg3wFdFx)的副本 - RobG
2个回答

6
您可以这样做:
var mystr = "Name[Daniel],Name2[Alguien],Date[2009],Date[2014]"; 
var array = mystr.match(/\[.+?\]/g).map(function(value){  // searches for values in []
    return value.replace(/[\[\]]/g,""); // removes []
});

嗨,感谢您的回答。您的第一段代码完美地运行了。新的解决方案似乎不起作用,Fiddle:http://jsfiddle.net/wx4Lm/ - user3288852

0
尝试使用以下代码,您可以看到字符串被逗号分隔,然后使用正则表达式将必要的部分推送到新数组中。
var mystr = "Name[Daniel],Name2[Alguien],Date[2009],Date[2014]";
var array = mystr.split(",");
re = /\[(.*)\]/;
var newArray = [];

for (var i = 0; i < array.length; i++) {
    newArray.push(array[i].match(re)[1]);
}

newArray = ['Daniel', 'Alguien', '2009', 2014];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接