2013-08-20 149 views
-1

我想弄清楚如何将字符串转换为对象。分隔符是|个字符。所以基本上这样的:从JavaScript中创建对象字符串

var myString = "Name, Bob | Location, Washington | Pet, Dog"; 

变为:提前

var myObj = { 
Name: "Bob", 
Location: "Washington", 
Pet: "Dog" 
}; 

感谢任何有益的输入。

+1

没有内置对于这一点,所以你必须自己编写代码。不应该太糟糕,只需要几个字符串分割函数,并循环遍历结果来构建新对象。 如果您在上述任何步骤中遇到特定问题,那么您应该提出这些问题。 –

+0

如何?你能否详细说明一下? – mwilson

+0

问题是什么?首先在管道上分割以获得“,”组合,然后在逗号分割得到“”和“”...并修剪值的前导空间,然后将其添加到对象。 –

回答

4

这将工作,假设字符串格式(您需要SHIM forEach在旧的浏览器,或用循环替换):

var myString = "Name, Bob | Location, Washington | Pet, Dog"; 

var myObj = function(){ 
    var result = {}; 
    myString.split(/\s*\|\s*/).forEach(function(el){ 
    var parts = el.split(/\s*,\s*/); result[parts[0]] = parts[1]; 
    }); 
    return result; 
}(); 
+0

谢谢!这有帮助! – mwilson

+1

@mwilson不客气。顺便说一句,你有没有考虑使用JSON代表你的对象? – Paulpro

+0

是的,我有。然而,我个人的需求(当时)是避免使用JSON或JQuery,直到我完全理解JavaScript(在某种程度上)。我感谢您的帮助! – mwilson