用逗号分隔字符串,但使用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