怎么通过JS移动字符在字符串中的位置

JavaScript010

怎么通过JS移动字符在字符串中的位置,第1张

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表示移动到基于预处理字符串中的位置索引

over,在鼠标指针移动到指定的对象上时发生。

move,在鼠标指针移动时发生。

就拿我刚刚遇到的一个问题举例,我 用canvas标签,创建了一个画布,并画了一个小矩形,我想让鼠标悬停到矩形区域时改变矩形填充色,这里只能监听整个画布,看起来应该用over,实际上用的却是move。因为,move在每次鼠标移动时,都会触发,会获得当前坐标值,用来判断这个点是否落在矩形内。若是用over,则会在进入画布时就触发,且仅会触发这一次,之后鼠标在画布内移动,一直都处于over状态,就不会触发,直到鼠标离开这个画布区域,失效。