输入框过滤非数字

HTML:<input type="text" id="only"/>

JS:



 1 window.onload=function(e){
 2         var text=document.getElementById("only"),pattern=/\d/,//pattern匹配字母上的数字键
 3                 pattern2=/(9[6-9])|(10[0-5])|3(7|9)/,//pattern2匹配小键盘上的数字键和左右方向键
 4                 EventHandle={},event=e||window.event;//一个处理事件的对象
      //当网页加载的时候,进行判断,对事件处理对象进行定义属性,这样对事件对象的方法只需要进行一次判断,以后的其他事件      //处理程序里面不需要判断
 5         if(event.preventDefault){
 6             EventHandle.preventDefault=function(e){
 7                 e.preventDefault();
 8             };
 9         }else{
10             EventHandle.preventDefault=function(e){
11                 e.returnValue=false;
12             }
13         }
14         text.onkeydown=function(e){
15             var event=e||window.event;//不同事件的事件对象不一样,这个event和最前面的event不相等
16             if(!pattern.test(String.fromCharCode(event.keyCode))&&event.keyCode!=8//keyCode=8是退格键,因为可以对输入的数字进行修改,所以退格和左右方向键不禁止
17                     &&!pattern2.test(event.keyCode.toString())||event.shiftKey||
18                     event.ctrlKey||event.metaKey){
19                 EventHandle.preventDefault(event);//如果不用对象的这个方法,写成下面这样,也可以执行,不过每次按下键盘的时候都会进行一次判断                               //这个是没有必要的,所以在页面加载的时候对事件处理对象定义一个方法,加载后对象的方法就已经是确定的了,以后时候就可以了

                                //if(event.preventDefault){
                                //event.preventDefault();
                                //}else{
                                //event.returnValue=false;
                                //}

20             }
21         }
22     }

未注释版本:

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版本进行调试

时间: 2024-11-13 07:46:34

输入框过滤非数字的相关文章

oracle 非数字型转数字型

原文:oracle 非数字型转数字型 oracle中如果一个字段内容不全是数字型 可以通过以下方式过滤 to_number(substr(translate(a.vital_signs_cvalues, '9876543210.' || a.vital_signs_cvalues, '9876543210.'), 1, instr(translate(a.vital_signs_cvalues, '9876543210.' || a.vital_signs_cvalues, '987654321

【JS】input输入框只能输入数字

一.实现思路 input只能输入纯数字的思路其实很简单,监听输入框值的变化,每次输入检索输入框的值,将非数字的字段替换成空,再将此值赋予给输入框. 关键代码: \d:匹配数字 ^/d:全文匹配非数字 replace(/[^/d]/g,''):全文匹配非数字,并替换成空. 那我们的实现代码为: var input = document.querySelector("#demo"); input.oninput = function (){ input.value = input.valu

设置警告框为带有一个密文输入框的样式,并设置输入框键盘为数字键盘;判断密文输入框里的内容,并弹出相应提示

项目需求 废话不说,直接上试题 及答案 代码 #import "TableViewController.h" @interface TableViewController ()<UIAlertViewDelegate> @property (nonatomic, strong) NSMutableArray * dataSource; - (IBAction)buy:(id)sender; @end @implementation TableViewController -

js中——限制文本框输入非数字

//先把非数字的都替换掉,除了数字和.和/             obj.value = obj.value.replace(/[^\-\d./]/g, ""); //必须保证第一个为数字而不是.             obj.value = obj.value.replace(/^\./g, ""); //保证只有出现一个.而没有多个.             obj.value = obj.value.replace(/\.{2,}/g, ".&q

C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字

/// 去掉字符串中的数字 public static string RemoveNumber(string key)          {              return Regex.Replace(key, @"\d", "");          } //去掉字符串中的非数字public static string RemoveNotNumber(string key)  {      return Regex.Replace(key, @"

angularjs中的验证input输入框只能输入数字和小数点

百度的资料:自己记录看下 把js的验证方法改成angular可使用的方法 AngularJS文件的写法: $scope.clearNoNum = function(obj,attr){ //先把非数字的都替换掉,除了数字和.obj[attr] = obj[attr].replace(/[^\d.]/g,"");//必须保证第一个为数字而不是.obj[attr] = obj[attr].replace(/^\./g,"");//保证只有出现一个.而没有多个.obj[a

如何过滤 非中文的Unicode码

如何过滤 非中文的Unicode码,如 "我愿为你摘一朵鲜花 \u4e00-\u9fa5

combobox和textbox中输入数据为非数字leave时的公用事件,只需要在控件的leave事件中选择本事件即可

private void tbORcbb_leave(object sender, EventArgs e)        {            if (typeof(TextBox).IsInstanceOfType(sender))            {                if (((TextBox)sender).Text.IsNumeric() != true)                {                    ((TextBox)sender)

input框只能输入整数和浮点数非数字就不输入

<input type="text" onInput="clearNoNum(this)" > //需引入jquery <script> function clearNoNum(obj){ //先把非数字的都替换掉,除了数字和. obj.value = obj.value.replace(/[^\d.]/g,""); //必须保证第一个为数字而不是. obj.value = obj.value.replace(/^\./g