我有一小段代码需要将字符串拆分为 javascript 对象。
生成的对象需要看起来像这样:
var myObject = {
valueOne: value,
valueTwo: value,
arrayOfValues: [values]
}
需要转换的字符串有两种不同的格式。这些格式看起来像:
1) “我的值是 ('1','2','3')”
--这将被翻译成:
var myObject = {
valueOne: myValues,
valueTwo: are,
arrayOfValues: [1,2,3]
}
或者
2) “MyValue="1""
--这将被翻译成:
var myObject = {
valueOne: myValue,
valueTwo: =,
arrayOfValues: [1]
}
我知道我可以像这样拆分这个字符串:
var arr[] = myString.split(" ");
但是根据字符串的构成决定使用哪个拆分器,然后将其转换为 javascript 对象,这对我来说是一个未知的世界。
感谢您的帮助。
编辑 -- 我在示例编号二
中犯了一个小错误我对其进行了更新,使其正确无误。 -- 我收到的字符串格式为:
`"MyValue="1""`
samy-delux,感谢您的帮助!效果很好,但是对第二个字符串的更改破坏了您的示例。 (对不起,我打错了字符串的格式。)
我正在尽最大努力学习正则表达式。但是还没有足够的知识来解决这个问题。
最佳答案
给你(http://jsfiddle.net/VBmb8/):
function parse(str) {
var match = str.match(/(\w+)\s?([\w=]+)\s?\('(.+)'\)/);
return {
valueOne: match[1],
valueTwo: match[2],
arrayOfValues: match[3].split("','")
};
}
* 编辑后 *
function parse(str) {
var match = str.match(/(\w+)\s?([\w=]+)\s?\(?['"](.+)['"]\)?/);
return {
valueOne: match[1],
valueTwo: match[2],
arrayOfValues: match[3].split("','")
};
}
关于javascript - 有条件地将字符串拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13364127/