如何分割以下字符串?
var str = "test":"abc","test1":"hello,hi","test2":"hello,hi,there";
如果我使用str.split(",")
,那么我将无法获得包含逗号的字符串。
什么是拆分上述字符串的最佳方式?
答案 0 :(得分:3)
我认为它实际上是:
var str = '"test":"abc","test1":"hello,hi","test2":"hello,hi,there"';
因为否则它甚至不是有效的JavaScript。
如果我有这样的字符串,我会将其解析为一个不完整的JSON,它似乎是:
var obj = JSON.parse('{'+str+'}');
然后使用is作为普通对象:
alert(obj.test1); // says: hello,hi
请参阅DEMO
更新1:查看其他答案我想知道是否只有我将其视为无效的JavaScript?
更新2:此外,是否只有我将其视为没有大括号的JSON?
答案 1 :(得分:0)
虽然您的输入不明确。以下是我的建议。
str.split( ' “”'); 然后将双引号附加到每个字符串
答案 2 :(得分:0)
str.split( ' “”');鉴于格式化很难说
如果Zed是正确的,你可以这样做(假设开始和结束{)
str = eval(str);
var test = str.test; // Returns abc
var test1 = str.test1; // returns hello,hi
//etc
答案 3 :(得分:0)
这是所有语言的一般问题:如果您需要的项目包含分隔符,则会变得复杂。
最简单的方法是确保分隔符是唯一的。如果你不能这样做,你可能不得不手动迭代引用的字符串,如下所示:
var arr = [];
var result = text.match(/"([^"]*"/g);
for (i in result) {
arr.push(i);
}
答案 4 :(得分:0)
在字符串上迭代一次,并在(“)之后替换逗号(,),然后在(%)之后添加逗号(或),或者在您的小字符串中找不到的东西。然后用(%)或你选择的任何东西分开。