这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
这篇文章主要介绍 js 过滤输入框中非数字的字符,很简单,但很实用,需要的朋友可以参考下
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 版本进行调试
来源: http://www.phperz.com/article/17/0625/274767.html