如果我有以下字符串:使用JavaScript提取特定的子字符串?
mickey mouse WITH friend:goofy WITH pet:pluto
什麼是JavaScript來採取串並提取出所有的「鍵:值」的最好辦法對進入某些對象變量?冒號是分隔符。儘管我可能會也可能不會保證WITH會在那裏。
如果我有以下字符串:使用JavaScript提取特定的子字符串?
mickey mouse WITH friend:goofy WITH pet:pluto
什麼是JavaScript來採取串並提取出所有的「鍵:值」的最好辦法對進入某些對象變量?冒號是分隔符。儘管我可能會也可能不會保證WITH會在那裏。
var array = str.match(/\w+\:\w+/g);
然後在陣列使用":"
,拿到鑰匙值對每個項目拆分。
下面是代碼:
function getObject(str) {
var ar = str.match(/\w+\:\w+/g);
var outObj = {};
for (var i=0; i < ar.length; i++) {
var item = ar[i];
var s = item.split(":");
outObj[s[0]] = s[1];
}
return outObj;
}
也許像
"mickey WITH friend:goofy WITH pet:pluto".split(":")
它會返回數組,然後在陣列上循環。
myString.split(/\s+/).reduce(function(map, str) {
var parts = str.split(":");
if (parts.length > 1)
map[parts.shift()] = parts.join(":");
return map;
}, {});
字符串模式必須以一種或另一種方式至少一致。 使用由發生在共同的(我們說空間ATLEAST)字拆分的JavaScript和拆分功能 然後,你需要通過使用每個那些分裂:爲重點,並獲得所需的值對象。 希望這是你渴望什麼。
比如,你可以這樣來做:
var myString = "mickey WITH friend:goofy WITH pet:pluto";
function someName(str, separator) {
var arr = str.split(" "),
arr2 = [],
obj = {};
for(var i = 0, ilen = arr.length; i < ilen; i++) {
if (arr[i].indexOf(separator) !== -1) {
arr2 = arr[i].split(separator);
obj[arr2[0]] = arr2[1];
}
}
return obj;
}
var x = someName(myString, ":");
console.log(x);
'match'採用正則表達式。使用'indexOf'或省略那一行,你仍然可以檢查'arr2.length' – Bergi
感謝提示,完成 –
我覺得串缺乏一定的連貫性。你確定以前的第一句話:永遠是關鍵。並且:之後的第一個詞總是價值? –
你可以在空白處使用正則表達式,或者只是['split'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/split)和冒號到子字符串。你有什麼嘗試? – Bergi
@Xeano兩者都有。 – Rolando