1. 程式人生 > 其它 >前端js處理多張圖片路徑中出現的特殊字元問題

前端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"

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