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