输入框过滤非数字的js代码
作者:bea
HTML: 代码如下: <input type="text" id="only"/> JS: window.onload=function(e){var text=document.getElementById("only"),pattern=/d/,//pattern匹配字母上的数字键pattern2=/(9[6-9])|(10[0-5])|3(7|9)/,//pattern2匹配小键盘上的数字键和左右方向键EventHandle={},even
HTML:
代码如下:
<input type="text" id="only"/>
JS:
window.onload=function(e){
var text=document.getElementById("only"),pattern=/d/,//pattern匹配字母上的数字键
pattern2=/(9[6-9])|(10[0-5])|3(7|9)/,//pattern2匹配小键盘上的数字键和左右方向键
EventHandle={},event=e||window.event;//一个处理事件的对象
//当网页加载的时候,进行判断,对事件处理对象进行定义属性,这样对事件对象的方法只需要进行一次判断,以后的其他事件
//处理程序里面不需要判断
if(event.preventDefault){
EventHandle.preventDefault=function(e){
e.preventDefault();
};
}else{
EventHandle.preventDefault=function(e){
e.returnValue=false;
}
}
text.onkeydown=function(e){
var event=e||window.event;//不同事件的事件对象不一样,这个event和最前面的event不相等
if(!pattern.test(String.fromCharCode(event.keyCode))&&event.keyCode!=8//keyCode=8是退格键,因为可以对输入的数字进行修改,所以退格和左右方向键不禁止
&&!pattern2.test(event.keyCode.toString())||event.shiftKey||
event.ctrlKey||event.metaKey){
EventHandle.preventDefault(event);//如果不用对象的这个方法,写成下面这样,也可以执行,不过每次按下键盘的时候都会进行一次判断
//这个是没有必要的,所以在页面加载的时候对事件处理对象定义一个方法,加载后对象的方法就已经是确定的了,以后时候就可以了
//if(event.preventDefault){
//event.preventDefault();
//}else{
//event.returnValue=false;
//}
}
}
}
未注释版本:
window.onload=function(e){
var text=document.getElementById("only"),pattern=/d/,
pattern2=/(9[6-9])|(10[0-5])|3(7|9)/,
EventHandle={},event=e||window.event;
if(event.preventDefault){
EventHandle.preventDefault=function(e){
e.preventDefault();
};
}else{
EventHandle.preventDefault=function(e){
e.returnValue=false;
}
}
text.onkeydown=function(e){
var event=e||window.event;
if(!pattern.test(String.fromCharCode(event.keyCode))&&event.keyCode!=8
&&!pattern2.test(event.keyCode.toString())||event.shiftKey||
event.ctrlKey||event.metaKey){
EventHandle.preventDefault(event);
}
}
}
在IE11里面,F12打开开发者工具里面可以选择IE版本进行调试
有用 | 无用
代码如下:
<input type="text" id="only"/>
JS:
window.onload=function(e){
var text=document.getElementById("only"),pattern=/d/,//pattern匹配字母上的数字键
pattern2=/(9[6-9])|(10[0-5])|3(7|9)/,//pattern2匹配小键盘上的数字键和左右方向键
EventHandle={},event=e||window.event;//一个处理事件的对象
//当网页加载的时候,进行判断,对事件处理对象进行定义属性,这样对事件对象的方法只需要进行一次判断,以后的其他事件
//处理程序里面不需要判断
if(event.preventDefault){
EventHandle.preventDefault=function(e){
e.preventDefault();
};
}else{
EventHandle.preventDefault=function(e){
e.returnValue=false;
}
}
text.onkeydown=function(e){
var event=e||window.event;//不同事件的事件对象不一样,这个event和最前面的event不相等
if(!pattern.test(String.fromCharCode(event.keyCode))&&event.keyCode!=8//keyCode=8是退格键,因为可以对输入的数字进行修改,所以退格和左右方向键不禁止
&&!pattern2.test(event.keyCode.toString())||event.shiftKey||
event.ctrlKey||event.metaKey){
EventHandle.preventDefault(event);//如果不用对象的这个方法,写成下面这样,也可以执行,不过每次按下键盘的时候都会进行一次判断
//这个是没有必要的,所以在页面加载的时候对事件处理对象定义一个方法,加载后对象的方法就已经是确定的了,以后时候就可以了
//if(event.preventDefault){
//event.preventDefault();
//}else{
//event.returnValue=false;
//}
}
}
}
未注释版本:
window.onload=function(e){
var text=document.getElementById("only"),pattern=/d/,
pattern2=/(9[6-9])|(10[0-5])|3(7|9)/,
EventHandle={},event=e||window.event;
if(event.preventDefault){
EventHandle.preventDefault=function(e){
e.preventDefault();
};
}else{
EventHandle.preventDefault=function(e){
e.returnValue=false;
}
}
text.onkeydown=function(e){
var event=e||window.event;
if(!pattern.test(String.fromCharCode(event.keyCode))&&event.keyCode!=8
&&!pattern2.test(event.keyCode.toString())||event.shiftKey||
event.ctrlKey||event.metaKey){
EventHandle.preventDefault(event);
}
}
}
在IE11里面,F12打开开发者工具里面可以选择IE版本进行调试
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 一个JavaScript去除字符串末尾的空白实例代码
- javascript实现动态模态绑定grid过程代码
- Javascript中call与apply的学习笔记
- Javascript中this的用法详解
- JavaScript的作用域和块级作用域概念理解
- JavaScript中双叹号!!作用示例介绍
- 原生JavaScript实现合并多个数组示例
- 仿淘宝TAB切换搜索框搜索切换的相关内容
- 将数字转换成大写的人民币表达式的js函数
- 判断window.onload是否多次使用的方法
- 使用JavaScript进行进制转换将字符串转换为十进制
- JS实现清除指定cookies的方法
- JS合并数组的几种方法及优劣比较
- JS实现的用来对比两个用指定分隔符分割的字符串是否相同
- js用Date对象的setDate()函数对日期进行加减操作
- JS应用正则表达式转换大小写示例
- 使用不同的方法结合/合并两个JS数组
- js实现按Ctrl+Enter发送效果
- javascript搜索框点击文字消失失焦时文本出现