大家好,有一种方法可以像这样分割字符串:
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/