例如:str=" 132&jgfy413& dajn&1231fssd";`
var newStr=str.split("&").join("");//先通过转换成数组去除特殊字符,得到一个新的数组再转成一个新的字符串
var arrL=[];
var arrR=[];
function get (str){
for(var i=0;i<str.length;i++){
//循环遍历判断字符串的每一项的ASCII码值是否在数字的ASCII值得范围内,不在的存放在数组arrR里
if(str.charCodeAt(i)<48 || str.charCodeAt(i)>58){
arrR.push(str.charAt(i))
}else{
arrL.push(str.charAt(i))
}
}
var arr= arrL.concat(arrR)//然后将两个数组拼接起来
return noRepeat(arr);
}
function noRepeat(arr){
//利用对象储存数组的项,遇到重复就将数组末尾的值赋给当前值,然后去掉末尾值
var obj={};
for(var i=0;i<arr.length;i++){
var cur = arr[i];
if(obj[cur]==cur){
arr[i]=arr[arr.length-1];
arr.length--;
i--;
continue;
}
obj[cur]=cur;
}
return arr.join("");
}
以上代码即可实现