所以我试图在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"
,或者它确实会保持不变
答案 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"]"
返回[""["", "", "", ""]""]
。)