【问题标题】:How can I split text on commas not within double quotes, while keeping the quotes?如何在保留引号的同时拆分不在双引号内的逗号文本?
【发布时间】:2011-07-26 06:51:37
【问题描述】:

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

"foo","super,foo"

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

有没有一种方法可以拆分表示分隔符的元素,但让它保留某些分隔符而无需编写代码将值连接回字符串?

编辑:

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

【问题讨论】:

  • 你想要"foo","super,foo"的最终结果是什么?
  • 是的,Tom 提醒您添加它
  • 抱歉,您希望输出与输入相同吗?

标签: javascript


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

    为了大家的讨论和利益,找到这个页面是寻求帮助,这里有一个更灵活的解决方案:

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

    输出

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

    这通过将“g”(全局)标志传递给 RegExp 实例导致匹配返回一个包含所有出现的 /"[^"]"/ 的数组,该数组捕获 "foo,bar""foo",甚至是 "['foo', 'bar']"(@987654327 @返回[""["", "", "", ""]""]。)

    【讨论】:

      猜你喜欢
      • 2019-07-05
      • 1970-01-01
      • 2019-05-11
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多