我有一个字符串:
var str = "username:joe_1987;password:123456;email:joe@mailmail.com;"
我可以(或者更确切地说)如何创建一个可以称之为参数的对象,例如:
alert(obj.password)
并获取123456
答案 0 :(得分:2)
我不是专家,但这样的事情应该有效:
string = 'username:joe_1987;password:123456;email:joe@mailmail.com;';
array = string.split(';');
object = {};
for(i=0;i<array.length;i++){
if(array[i] !== ''){
console.log(array[i]);
object[array[i].split(':')[0]] = array[i].split(':')[1];
}
}
console.log(object);
答案 1 :(得分:2)
我建议拆分字符串中的分号,给你一个看起来像这样的数组:
["username:joe_1987", "password:123456", "email:joe@mailmail.com"]
然后,您可以将相同的想法应用于此数组的每个元素,然后创建该对象。我在下面扔了一个片段来解释:
var str = "username:joe_1987;password:123456;email:joe@mailmail.com;"
var splitBySemiColon = str.split(";");
splitBySemiColon.pop(); //Remove the last element because it will be ""
var obj = {};
for(elem in splitBySemiColon) {
splitByColon = splitBySemiColon[elem].split(":");
obj[splitByColon[0]] = splitByColon[1];
}
希望这有帮助!
编辑:为您提供了现场演示 - https://repl.it/CtK8
答案 2 :(得分:0)
IF 您确定所需的值不会有;
或:
,您可以
var str = "username:joe_1987;password:123456;email:joe@mailmail.com;"
var obj = {};
str.split(';').forEach( function(segm) {
if(segm.trim()) { // ignore empty string
var spl = segm.split(':');
obj[ spl[0] ] = spl[1];
}
})
答案 3 :(得分:0)
使用此
var str = "username:joe_1987;password:123456;email:joe@mailmail.com;"
var data=str.split(';');
var obj={};
for(var i=0;i<data.length;i++){
var propArray=data[i].split(':');
obj[propArray[0]]=propArray[1]
}
答案 4 :(得分:0)
没有直道。只需解析该字符串。例如:
var str = "username:joe_1987;password:123456;email:joe@mailmail.com;"
var arr = str.split(';');
var o = {};
for (a in arr) {
if (arr[a]) {
o[arr[a].split(':')[0]]=arr[a].split(':')[1];
}
}
console.log(o);