input输入框校验

1、只能输入数字,当输入不符字符删除,光标位置不变

 1 //只能输入数字
 2 function onlyNumTrue(obj){
 3     var reg = /[^d]/g; 
 4     var pos = obj.selectionEnd;//获取光标位置
 5     var val = obj.value; //获取input的值
 6     //如果值存在不符字符将光标位置减一 
 7     if (reg.test(val)) {
 8         pos = pos - 1;
 9     }
10     $(obj).val(val.replace(/[^d]/g, ''));
11     obj.setSelectionRange(pos,pos);//设置光标位置
12 }

 2、输入框内光标移动

 1 <body>
 2     <input type="text" name="CAL_COM_ID" id="CAL_COM_ID" onkeyup="cky(this)"/>
 3      
 4     <input type="text" name="CAL_COM_ID1" id="CAL_COM_ID1" onkeyup="value=value.replace(/[^(()d&|)]/g,'')"/>
 5      
 6 <script type="text/javascript">
 7     function cky(obj)
 8     {
 9         var t = obj.value.replace(/[^(()d&|)]/g,"");
10         if(obj.value!=t)
11             obj.value=t;
12     }
13  
14 </script>
15 </body>

第一种写法写完后键盘左右键移动,光标可以移动;第二种写法光标不能移动。

3、使用replace时,不能控制光标的位置。

步骤:

1、获取光标位置:var pos = this.selectionEnd;//获取鼠标位置

2、设置光标位置:this.setSelectionRange(pos,pos);//设置鼠标位置

4、input输入框的事件监听  

https://blog.csdn.net/yiifaa/article/details/52372022

美好生活
原文地址:https://www.cnblogs.com/ssbydk/p/9360610.html