兼容IE跟FirFoxl浏览器-只能输入数字-定位光标
兼容IE和FirFoxl浏览器---只能输入数字-定位光标
<script type="text/javascript"> var leng; var rex=/\d{1,}\.{0,1}\d{0,}/; //去掉左边空格 function ltrim(s) { return s.replace(/(^\s*)/g, ''); } //去掉右边空格 function rtrim(s) { return s.replace(/(\s*$)/g, ''); } //去掉左右空格 function trim(s){ return rtrim(ltrim(s)); } function checkInputInt(obj){ //获得光标的初始位置 var start=obj.selectionStart; var end=obj.selectionEnd; var report=document.getElementById(obj.id).value; var reportItem=trim(report); //获取光标处输入的字符 var res=report.substring(start-1,start); if(typeof document.selection != "undefined") { //支持IE浏览器 var s=document.selection.createRange(); s.setEndPoint("StartToStart",obj.createTextRange()) len=trim(s.text).length; }else{ //支持FirFox浏览器 obj.focus(); obj.setSelectionRange(start,end); } //记录文本框开始处输入的字符 var temp=report.substring(0,1); if(reportItem=='' || reportItem==null){ document.getElementById(obj.id).value=report.substring(report.length); }else{ var count=report.substring(0,report.length-reportItem.length); var countLength=count.length; var countStr=""; //去掉左边的空格符 for(var i=0;i<countLength;i++){ countStr+=" "; } //统计最左边有多少个非数字的字符 var j=0; for(var i=0;i<report.length;i++){ var a=report.charAt(i); if(!a.match(rex)){ j++; } } //验证输入字符的最左端的字符是否为数字并定位光标 if(!temp.match(rex)){ //移除最左边的非数字字符 document.getElementById(obj.id).value=report.substring(j,report.length); //定位光标 if(typeof document.selection != "undefined") { var range=obj.createTextRange(); range.moveStart('character',0); range.collapse(true); range.select(); }else{ obj.focus(); obj.setSelectionRange(0,0); } } } clearInnerNumInt(obj,temp,res,start,end); //输入0时直接置为1 if(parseInt(report)<1){ document.getElementById(obj.id).value=1; } } function clearInnerNumInt(obj,temp,res,start,end){ var reqStr=document.getElementById(obj.id).value; var size=reqStr.length; var noStr=""; var k=0; var s=0; for(var i=0;i<size;i++){ noStr=reqStr.charAt(i); if(!noStr.match(rex)){ //统计非数字的字符数量 k++; IgnoreStrInt(obj.id,reqStr); } if(noStr==" "){ //统计输入空字符的字符数量 s++; } } if(typeof document.selection != "undefined") { //支持IE浏览器 var range = obj.createTextRange(); //验证非数字定位光标 if(temp.match(rex)){ //alert("dd"); if(len>0&&len<size){ range.moveStart('character',len-k); }else{ range.moveStart('character',len); } }else{ range.moveStart('character',0); } //验证输入空字符串定位光标 if(s>0){ range.moveStart('character',len); } range.collapse(true); range.select(); }else{ //支持FirFox浏览器 if(!temp.match(rex)){ obj.setSelectionRange(0,0); }else{ var resStr=document.getElementById(obj.id).value; var resSize=resStr.length; if(!res.match(rex)&&k>0){ obj.setSelectionRange(start-k,end-k); } } } } //去掉非数字的字符 function IgnoreStrInt(id,Str){ var ResultStr=""; var array=new Array(); for(var n=0;n<Str.length;n++){ var b=Str.charAt(n); if(!b.match(rex)){ array[n]=""; }else{ array[n]=b; } } for(var r=0;r<array.length;r++){ ResultStr+=array[r]; } document.getElementById(id).value=ResultStr; } </script> 禁止在内容中输入非数字字符:<input type="text" id="name" value="" onkeyup="checkInputInt(this);"><p>