js正则替换双引号及双引号之间的空白字符

源数据:

字符串 '12345\t"张\t三\n丰"\t"上海\n市\t,闸北区"',这里双引号位置不固定,内部的空白字符数据及位置也不固定。

目的:

将凡是双引号括起来的部分中的空白字符去掉。如上的字符串变为:

'12345\t张三丰\t上海市,闸北区'

问题

我想用js正则处理上面的字符串,str.replace(/???/g,''),这里的正则如何写呢?

非常感谢!!!

因为我需要按\t去split这个字符串成为数组,所以只有在双引号之间的空白字符是需要去除的,而且要连双引号一并去除。

这个需求用正则处理通用性要好些。
这数据我是模拟从excel中直接复制,然后在textarea中直接粘贴,直接粘贴的结果就是行之间用换行分隔,字段间用\t分隔,但如果人为的在单元格中输入了换行符,就会出现将那个包含换行符的单元格内容用双引号括起来,这里不足之处是咱测试了,如果人为在单元格中录入了tab,还是会导致数据分割出错,而且没有办法去处理那个特殊的tab。
这里就是要清洗下数据,减少程序出错的可能。

阅读 7.9k
2 个回答
var str='12345\t"张\t三\n丰"\t"上海\n市\t,闸北区"';
var result=str.replace(/"[^"]+"/g,function(matchStr){
return matchStr.replace(/[\s"]+/gm,'');
});
result;

有没有双引号和去掉空格有什么关系?直接这样就行了:str.replace(/\s/g,'')

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题