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

我正在寻找[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]);

以上是 用逗号分隔字符串,但使用Javascript忽略双引号内的逗号 的全部内容, 来源链接: utcz.com/qa/416493.html

回到顶部