前端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"
希望能帮到有需要的童鞋~~~