Javascript:拆分键值(带空格)

时间:2016-02-06 00:02:53

标签: javascript jquery

大家好,有办法分割这样的字符串:

pymongo3.2

为了获得“真实”和“第1组”?

我试过这个:

var tMatch='key1="true" key2="Group 1"';

但是key2的输出是错误的,是:

var key1;
var key2;

tMatch.split(' ').forEach(function(x){
        var arr = x.split('=');
        if (arr[1]){
            if (arr[0]=='key1'){
                key1=arr[1];
            }else if (arr[0]=='key2'){
                key2=arr[1];
            }
            }
    });

  alert('key1:'+key1);
  alert('key2:'+key2);

而不是

"Group 

因为空间。 你能建议一个解决方案吗? 先感谢您。 请注意,key1和key2也可能包含多个空格,如: key1 =“今天是美好的一天”key2 =“明天没有”

3 个答案:

答案 0 :(得分:2)

假设你在字符串中没有引号,你可以使用regexp来做到这一点。

var tMatch = 'key1="false" key2="Group 1"';
var key1;
var key2;

var re = /(\w+)="([^"]*)"/g;
while (match = re.exec(tMatch)) {
  if (match[1] == 'key1') {
    key1 = match[2];
  } else if (match[1] == 'key2') {
    key2 = match[2];
  }
}

alert('key1:' + key1);
alert('key2:' + key2);

答案 1 :(得分:1)

使用以下代码:

var tMatch='key1="false" key2="Group 1"';
var key1;
var key2;

tMatch.split('" ').forEach(function(x){
        var arr = x.split('=');
        if (arr[1]){
            if (arr[0]=='key1'){
                 key1=arr[1]+'"';
            }else if (arr[0]=='key2'){
                key2=arr[1];
            }
            }
    });

  alert('key1:'+key1);
  alert('key2:'+key2);
}

答案 2 :(得分:0)

你可以做到

tMatch.replace(/key\d=/g, '').split('"').forEach(function(item){
    if (item.length){
       console.log(item);
    }

});