如何保留引号,如何在逗号上拆分文字而不是双引号?

时间:2011-03-30 17:36:43

标签: javascript

所以我试图在javacript中拆分一个字符串,看起来像这样:

"foo","super,foo"

现在,如果我使用.split(","),它会将字符串转换为包含[0]"foo" [1]"super [2]foo"的数组 但是,我只想拆分引号之间的逗号,如果我使用.split('","'),它将转为[0]"foo [1]super,foo"

有没有办法可以拆分表示分隔符的元素,但是让它保留某些分隔符而不必编写代码来将值连接回字符串?

编辑:

我希望得到[0]"foo",[1]"super,foo"作为我的结果。基本上,我需要编辑某些数据的方式,我需要[0]中的内容永远不会改变,但[1]的内容将根据它包含的内容而改变。如果[1]的内容不是需要更改的内容,它会被连接回来看起来像"foo", "I WAS CHANGED",或者它确实会保持不变

2 个答案:

答案 0 :(得分:5)

试试这个:

'"foo","super,foo"'.replace('","', '"",""').split('","');

答案 1 :(得分:2)

为了讨论和获益,每个人都发现这个页面是搜索帮助,这是一个更灵活的解决方案:

var text = '"foo","super,foo"';
console.log(text.match(/"[^"]+"/g));

输出

['"foo"', '"super,foo"']

这可以通过将'g'(全局)标志传递给RegExp实例来导致匹配返回所有出现/"[^"]"/的数组,该数组捕获"foo,bar""foo",甚至"['foo', 'bar']""["foo", "bar"]"返回[""["", "", "", ""]""]。)