怎么通过JS移动字符在字符串中的位置
发布网友
发布时间:2022-04-28 10:57
我来回答
共3个回答
热心网友
时间:2022-04-26 08:03
var str = "asodn,f啊吊/l丝激发12323;";
var temp = { str: "asodn,f啊吊/l丝激发12323;", startIndex: 0, offset: 2, toIndex: 5 };
function moveCharPosition(opt) {
var s = opt.str.split(''), st = s.splice(opt.startIndex, opt.offset);
s.splice.apply(s, [].concat(opt.toIndex - opt.offset, 0).concat(st));
return s.join('');
}
alert(moveCharPosition(temp));
没有进行容错处理(比如没有对opt及其属性、值的合法性判断 等),你要自己完善,功能实现了。这个代码片段只负责移动字符位置,不负责替换,交叉移动等扩充性功能,如果需要可以自己修改。
opt中,str表示预处理字符串,startIndex表示要移动字符在字符串中的开始索引,offset表示移动几个字符,toIndex表示移动到基于预处理字符串中的位置索引
热心网友
时间:2022-04-26 09:21
你自己测试一下吧,没怎么测试
$(function(){
moveString("abcdef","b",1);
}) ;
//a值字符串,b是要移动的字符,c是移动的位置(从1开始)
function moveString(a,b,c){
//获取b在a中的位置
var place=a.indexOf(b)+1;
//初始化返回的字符串
var returnString="";
var aLength=a.length;
var isOnly=a.split(b);
//判断字符是否唯一
if(isOnly.length!="2"){
alert("字符不唯一或不存在");
return;
}
var head=a.substring(0,c-1);
var body=b;
var foot=a.substring(c-1,aLength);
//将移动的字符放到指定位置
returnString=head+body+foot;
returnString=returnString.split(b);
//去掉原来的字符
if(place==c){
returnString=a;
}else if(place<c){
returnString=returnString[0]+returnString[1]+b+returnString[2];
}else if(place>c){
returnString=returnString[0]+b+returnString[1]+returnString[2];
}
//alert(returnString);
return returnString;
}
热心网友
时间:2022-04-26 10:55
你可以先把你需要移动的字符截取出来,然后把你要移到的位置找出来,可以从那里把字符串分成两个字符串,然后就可以用你最开始截取出来的字符串把刚刚分成的两个字符串连接起来,有问题可以联系我