js的replace函数影响光标定位,怎么解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js的replace函数影响光标定位,怎么解决?相关的知识,希望对你有一定的参考价值。

写个input:
<input class="correct2" id="password" type = "password" name="text" maxlength="16" onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" oninput="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\W]/g,''))" style="ime-mode:Disabled;" placeholder="用户名"/>
想动态修改输入内容,禁止输入的部分就被无替换了,可是replace会影响光标位置,用前后箭头移动光标总是跑到字串最后,用鼠标点击在光标位置输入后,光标也自动回到最后。
有什么解决办法,或是能实现同样功能的函数去替换replace

参考技术A onchange事件中去响应replace方法吧。onkeyup就去响应不太划算。本回答被提问者和网友采纳

MFC 怎么将RichEdit中的光标定位在指定的行和列

俺没有好的办法
只会循环定位行数个数的"\\n"的位置n_index,然后再加上列数i
然后再
GetRichEditCtrl().SetSel(n_index+i,n_index+i);
参考技术A 你讲RichEdit封装到一个类上,可以新建一个,在里面添加消息函数,OnLBUTTONDOWN(),在函数里面用SetCaretPos();试试吧,

以上是关于js的replace函数影响光标定位,怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章

MFC 怎么将RichEdit中的光标定位在指定的行和列

js中replace方法光标不跳最后(VX)

js解决手机键盘影响定位的问题

如果设置Div 编辑器的光标位置?

SecureCRT在登陆Linux后,进入vim编辑页面时,光标无法定位到指定字符,如何解决

js实现光标位置置后