在javascript中拆分字符串

时间:2011-02-24 08:28:12

标签: javascript string split

如何分割以下字符串?

var str = "test":"abc","test1":"hello,hi","test2":"hello,hi,there";

如果我使用str.split(","),那么我将无法获得包含逗号的字符串。

什么是拆分上述字符串的最佳方式?

5 个答案:

答案 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)

在字符串上迭代一次,并在(“)之后替换逗号(,),然后在(%)之后添加逗号(或),或者在您的小字符串中找不到的东西。然后用(%)或你选择的任何东西分开。