前端js处理多张图片路径中出现的特殊字符问题

前端js处理多张图片路径中出现的特殊字符问题

问题:在一个字符串中,一个图片url的路径是:例如下面

;http://172.;16.70.200/file/img;/car1.jpeg;http://172.16.70.200/file;/img/car1.jpeg;

是不是多了‘;’特殊字符,不是我们想要的,需要把';'去掉,这是一个由多张图片组成的一个字符串,而且每个http之间确实有一个正确的';',所以还不能直接用replace替换,不然正确的也会被替换掉,直接贴上我的解决方案

//;http://172.;16.70.200/file/img;/car1.jpeg;http://172.16.70.200/file;/img/car1.jpeg;

function getPicListFrom(values) {
	console.log(values);
	if(values==null){
		 return new Array();
	}
	var arr=values.split(";");;
	if (arr == null) {
		  return new Array();

		 }
		 if (arr.length == 1) {
		  return arr;
		 }
		 var ret = new Array();
		 var temp = '';
		 for (var k = 0; k < arr.length; k++) {
		  if (arr[k] == null || arr[k] == '') {
		   continue;
		  }
		  if (temp != '') {
		   temp = temp + ';';
		  }
		  temp = temp + arr[k];
		  if (k < arr.length - 1) {
		   var t = arr[k + 1];
		   if (t == null || t == '' || (t.startWith('http') || t.startWith('ftp'))) {
		    ret[ret.length] = temp;
		    temp = '';
		   } 
		  } else {
		   ret[ret.length] = temp;
		  }

		 }
		 var ress = new Array();
		 for(var j = 0;j < ret.length;j++) {
			 ress.push(ret[j].replaceAll(";",""));
		 }
		 return ress;

}

可以看到,入参是异常的url http://172.;16.70.200/file/img/car1.jpeg;http://172.16.70.200/file;/img/car1.jpeg

出参是正常的js数组

0: "http://172.16.70.200/file/img/car1.jpeg"
1: "http://172.16.70.200/file/img/car1.jpeg"

希望能帮到有需要的童鞋~~~

posted @ 2021-11-22 17:17  Cloverlove  阅读(371)  评论(0编辑  收藏  举报