字符串中 字符无法删除,正则在线匹配生效但代码运行不生效
JS替换换行符失效问题解决方案
失效原因
你错误地将正则字面量包裹在了引号中,JavaScript 会将引号包裹的内容识别为普通字符串,只会匹配内容完全为/\r\n/g的字符,自然无法匹配到换行符。同时你之前的写法还存在两个额外问题:
- replace 方法的第二个参数传了空格,不是你需要的逗号
- split 方法的第二个参数应为返回数组的最大长度,传空格不符合语法要求
正确实现代码
如果要兼容 Windows(\r\n)和 Unix/Linux(\n)的换行格式,推荐用以下写法:
a = a.replace(/\r?\n/g, ',');
如果确认你的换行符固定为\r\n,也可以用:
a = a.replace(/\r\n/g, ',');
效果验证
你提供的原始字符串经过上述代码处理后,输出结果为:Drop Name,Area/zone,Pop,Hub,Gstinnumber,COCO000007,coco000007,coco000007,KAB STAR,Active,12-04-2017 12:00,"2A GOUR GHOSH ROAD, KOLKATA-700025",West Bengal,Kolkata,700025
补充说明
在线正则检测工具一般会自动将你输入的规则识别为正则表达式,不需要额外加引号,因此测试可以正常匹配,迁移到代码中时需要注意遵循 JS 的正则语法规则。
内容的提问来源于stack exchange,提问作者madhusudan Bhat
相关产品推荐
相关产品推荐

