使用JavaScript的拆分来切断字符串并将其放在两个数组中

时间:2010-04-23 17:34:48

标签: javascript html

我可以使用JavaScript的split将逗号分隔的项列表放在数组中:

var mystring = "a,b,c,d,e";
var myarray = mystring.split(",");

我想到的是有点复杂。我有这个字典式的字符串:

myvalue=0;othervalue=1;anothervalue=0;

如何将其拆分以使键最终位于一个数组中,并且值最终会出现在另一个数组中?

4 个答案:

答案 0 :(得分:4)

这样的事情:

var str = "myvalue=0;othervalue=1;anothervalue=0;"
var keys = [], values = [];

str.replace(/([^=;]+)=([^;]*)/g, function (str, key, value) {
  keys.push(key);
  values.push(value);
});

// keys contains ["myvalue", "othervalue", "anothervalue"]
// values contains ["0", "1", "0"]

看一下这篇文章:

答案 1 :(得分:0)

我仍然使用字符串拆分,然后编写一个方法,该方法接收“variable = value”形式的字符串并在'='上拆分,返回带有该对的Map。

答案 2 :(得分:0)

拆分两次。先拆分';'获取一组键值对。然后你可以在每个键值对的'='上再次使用split来分别得到键和值。

答案 3 :(得分:0)

你只需要分开';'并循环并通过'='拆分。

var keys = new Array();
var values = new Array();

var str = 'myvalue=0;othervalue=1;anothervalue=0;';
var items = str.split(';');
for(var i=0;i<items.length;i++){
    var spl = items[i].split('=');
    keys.push(spl[0]);
    values.push(spl[1]);
}

你需要考虑那个尾随';'虽然在字符串的末尾。每次在第一个数组的末尾都有一个空项。