<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="" οnkeyup="checkInputInt(this);"><p>
兼容IE和FirFoxl浏览器---只能输入数字-定位光标
最新推荐文章于 2023-04-23 11:54:02 发布