没有子串的javascript拆分

A-D*_*A-D 1 javascript split

我有一个看起来像这样的字符串

"a,b,c,"Mozilla/5.0,(compatible;,MSIE,9.0;,Windows,NT,6.1;,Trident/5.0)",d,e"
Run Code Online (Sandbox Code Playgroud)

我试图用","拆分这个字符串,并获取个别值.现在,它的作用是,它分割部分"Mozilla/5.0,(兼容;,MSIE,9.0;,Windows,NT,6.1;,Trident/5.0)",我也得到了这个作为最终结果

["a", "b", "c", ""Mozilla/5.0", "(compatible;", "MSIE", "9.0;", "Windows", "NT", "6.1;", "Trident/5.0)"", "d", "e"]
Run Code Online (Sandbox Code Playgroud)

有没有办法让它不拆分子串?基本上我试图在拆分后得到这个

["a", "b", "c", "Mozilla/5.0,(compatible;,MSIE,9.0;,Windows,NT,6.1;,Trident/5.0)", "d", "e"]
Run Code Online (Sandbox Code Playgroud)

Cer*_*nce 6

您可以使用正则表达式,并对非"字符使用负前瞻,后跟结尾",,这表示当前逗号位于带引号的字符串中:

const str = `a,b,c,"Mozilla/5.0,(compatible;,MSIE,9.0;,Windows,NT,6.1;,Trident/5.0)",d,e,"foo,bar,quoted",f,g`;
console.log(str.split(/,(?![^"]+",)/))
Run Code Online (Sandbox Code Playgroud)