JavaScript 如何从多张base64字符串中分隔

新手上路,请多包涵

从接口传回来的image base64地址是用逗号隔开的字符串,尝试过使用 String.prototype.split(',') 截取以逗号隔开的字符串,但是发现base64地址中含有逗号,会把一个base64地址给分割成2个,地址乱了,这个应该怎么处理呢?

阅读 6.3k
3 个回答

如果确保逗号不是base64的一部分、那split之后用join合并成一个字符串就好了

var new_base= str.split(",").join("")

如果逗号是base64的一部分,那接口为什么要用逗号分隔啊。。

base64 编码里不含有逗号

新手上路,请多包涵

最终解决方案(亲测有效):
/**

* 按逗号分解字符串, 引号中的逗号要保留.
* 方案: 1.将引号中都逗号替换为一个字符串中没有的符号; 2. 用split分解; 3. 还原引号中的逗号.
* @param str{string}: 要分解的字符串
*/

function mSplit(str) {

var temp = str.replace(/"[^"]*"/g,  match => match.replace(/,/g, '{}'));
return temp.split(',')
    .map(value => value.replace(/{}/g, ','));

}

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