当前位置: 首页 > 面试题库 >

用逗号分隔字符串,但使用Javascript忽略双引号内的逗号

尉迟韬
2023-03-14
问题内容

我正在寻找[a, b, c, "d, e, f", g, h]将其转换为6个元素的数组:a,b,c,“
d,e,f”,g,h。我正在尝试通过Javascript执行此操作。这是我到目前为止所拥有的:

str = str.split(/,+|"[^"]+"/g);

但是现在,它会将双引号中的所有内容都分割开了,这是不正确的。

编辑:好的,抱歉,我对这个问题的措辞很差。给我一个字符串而不是数组。

var str = 'a, b, c, "d, e, f", g, h';

我想使用“ split”功能将 转换为数组。


问题答案:

这就是我要做的。

var str = 'a, b, c, "d, e, f", g, h';
var arr = str.match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g);
/* will match:

    (
        ".*?"       double quotes + anything but double quotes + double quotes
        |           OR
        [^",\s]+    1 or more characters excl. double quotes, comma or spaces of any kind
    )
    (?=             FOLLOWED BY
        \s*,        0 or more empty spaces and a comma
        |           OR
        \s*$        0 or more empty spaces and nothing else (end of string)
    )

*/
arr = arr || [];
// this will prevent JS from throwing an error in
// the below loop when there are no matches
for (var i = 0; i < arr.length; i++) console.log('arr['+i+'] =',arr[i]);


 类似资料:
  • 问题内容: 我有一些输入如下所示: 逗号分隔的值可以是任何顺序。我想用逗号分割字符串;但是,在双引号内包含某些内容的情况下,我需要它既忽略逗号又去除引号(如果可能)。因此,基本上,输出将是以下字符串列表: 我已经看过其他一些答案,并且我认为正则表达式是最好的,但是我想出这些答案很糟糕。 问题答案: 拉瑟是对的。这是一个逗号分隔的值文件,因此您应该使用module。一个简单的例子:

  • 输入字符串用逗号分隔。但它可能包含双引号内的逗号,需要忽略。下面是示例字符串 下面是我用来拆分逗号的代码,但如果逗号是双引号中字符串的一部分,它就会失败。 所以任何解决这个问题的想法。

  • 问题内容: 我有一个模糊的字符串,像这样: 我想按逗号分割-但我需要忽略引号中的逗号。我怎样才能做到这一点?似乎正则表达式方法失败了;我想我可以在看到报价时手动扫描并进入其他模式,但是使用预先存在的库会很好。(编辑:我想我的意思是那些已经属于JDK或已经属于诸如Apache Commons之类的常用库的库。) 上面的字符串应分为: 注意:这不是CSV文件,它是文件中包含的单个字符串,具有较大的整体

  • 问题内容: 我有这样一个字符串: 我想按逗号分割-但我需要忽略引号中的逗号。我怎样才能做到这一点?似乎正则表达式方法失败了;我想我可以在看到报价时手动扫描并进入其他模式,但是使用预先存在的库会很好。 上面的字符串应分为: 问题答案: 可以使用正则表达式 输出:

  • 问题内容: 我已经看到了许多相关的问题,但是都没有直接解决我想做的事情。我正在从CSV文件中读取文本行。 所有项目都用引号引起来,有些则在引号内有其他逗号。我想按逗号分隔行,但忽略引号内的逗号。有没有一种方法可以在Python中执行此操作,而无需使用许多正则表达式语句。 一个例子是: 我想将其解析为4个单独的值变量: 我想念一个简单的选择吗? 问题答案: 不要尝试重新发明轮子。 如果要读取CSV文

  • 我有一根下面这样的弦- value1,value2,value3,value4,“value5,1234”,value6,value7,“value8”,value9,“value10,123.23”