我想解析以下字符串
3693,“Toxic Avenger,The(1985)”,Comedy | Horror
到
3693,
“Toxic Avenger,The(1985)”,
喜剧|。恐怖
同样,以下
161944,美国最后一位制砖师(2001年),戏剧
应解析为
161944
美国最后一位制砖厂(2001年)
剧情
我不能通过逗号分割来实现,因为“,”中有一个逗号。
工作解决方案: LS05建议我使用“substring”,所以我做了它并且它工作得很完美。 在这里。
var pos1 = line.indexOf(',');
var line = line.substring(pos1+1);
pos1 = line.indexOf(',');
pos2 = line.lastIndexOf(',');
let movie_id = line.substring(0,pos1);
let movie_tag = line.substring(pos1+1,pos2);
let movie_timespan = line.substring(pos2+1);
感谢LS05:)
答案 0 :(得分:6)
您可以使用正则表达式来解析您的字符串,该字符串将排除引号内的逗号
var str = '3693,"Toxic Avenger, The (1985)",Comedy|Horror';
console.log(str.match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g).join("\n"));
Demo(如果您想了解上述正则表达式的工作原理,请参阅学分)
就代码而言,我尝试拆分字符串,忽略字符串中的逗号,稍后我们再次使用换行符\n
答案 1 :(得分:2)
您可以使用papa parse
之类的CSV解析器,或者如果您认为不需要第三方库,则可以查看this function
。