Javascript:分割键值(带空格)

标签 javascript jquery

大家好,有一种方法可以像这样分割字符串:

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

为了获得“true”和“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);

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

"Group 

而不是

"Group 1" 

因为空间。 您能建议一个解决方案吗? 先感谢您。 请注意,key1 和 key2 还可以包含多个空格,例如: key1="今天是美好的一天"key2="明天不是美好的一天"

最佳答案

假设字符串中不能有引号,则可以使用正则表达式来完成此操作。

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);

关于Javascript:分割键值(带空格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35235570/

相关文章:

javascript - 如何将某些 javascript 的输出居中?

javascript - 在 .filter() 中,如何让回调函数调用另一个函数?

javascript - MS edge 上奇怪的 css 转换动画

javascript - 将 jquery 对象转换为 DOM 并使用 appendChild 函数

javascript - .append() 方法不会正确附加 php

javascript - 使用 html 标签和 bootstrap 时,为什么文本出现在我的 Shiny 应用程序中

javascript - jquery 上一个和下一个相邻的兄弟

jquery - 将 Json 数据传递到 MVC Razor View

jquery css高度设置无法正常工作

java - jQuery 将 servlet 名称添加到 URL 中两次