使用正则表达式后鼠标光标问题?

我使用了以下正则表达式之后,每输入一个数字,鼠标得光标都会自动放到最后,请问如何解决这个问题:让他输入之后鼠标光标跟着新输入的数字,不跑到input最后

function clearNoNum(obj){
            if(obj.value !=''&& obj.value.substr(0,1) == '.'){
                obj.value=0;
            };
            obj.value = obj.value.replace(/^0*(0\.|[1-9])/, '$1');
            obj.value = obj.value.replace(/[^\d.]/g,"");  
            obj.value = obj.value.replace(/\.{2,}/g,"."); 
            obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
            obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');
            if(obj.value.indexOf(".")< 0 && obj.value !=""){
                if(obj.value.substr(0,1) == '0' && obj.value.length == 2){
                    obj.value= obj.value.substr(1,obj.value.length);
                }
            }
        }

clipboard.png

clipboard.png

阅读 2.5k
1 个回答

你的值都变了,光标肯定也变了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏