dony916 2021-08-06 11:46 采纳率: 0%
浏览 66

怎么用 javascript分割双引号里有逗号的CSV文件的行

例子:
A,b,c,”d1,d2",e
.....
....

  • 写回答

4条回答 默认 最新

  • CSDN专家-showbo 2021-08-06 12:06
    关注

    先分割成行,列的话正则检查下是否存在引号,单双引号扩起的内容,先提取出来用占位符替换后再split,最后替换下占位符

    代码如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~

    img

       var s = `A,b,c,"d1,d2",e
    A,b,c,d1d2,e
    A,b,c,'d1,d2,d3,e4',e`;
        var arr = s.split('\n');
        arr.forEach((item, index) => {
            var re = /('|")([^'"]+)\1/g, kv = {}, groupIndex = -1, key;
            item = item.replace(re, function ($0, $1, $2) {
                groupIndex++;
                key = '__group' + groupIndex + '__';//占位符
                kv[key] = $2;
                return key
            });
            arr[index] = item.split(',');
            //有引号的组,需要遍历一次替换回占位符
            if (groupIndex > -1) arr[index].forEach((v, idx) => arr[index][idx] = kv[arr[index][idx]] || arr[index][idx]);
        });
        console.log(arr)
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 8月6日

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题