jQuery+正则+文本框只能输入数字的实现方法

网站中的一个小功能:要求用户只能输入16位数字。

试过javascript的方法:

如:一种方法:

//只允许输入数字
     function checkkey2(value, e) {
       var key = window.event ? e.keyCode : e.which;
       if ((key > 95 && key < 106) || (key > 47 && key < 60)) {

       }
       else if (key != 8) {
         if (window.event) //IE
         {
           e.returnValue = false;
         }
         else //Firefox
         {
           e.preventDefault();
         }
       };
     };

 另一种方法:

用正则表达式限制只能输入数字:
onkeyup="value=value.replace(/[^/d] /g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"

上面的两种方法我均用过,但多少都会出现一些问题,比如浏览器的兼容性问题,不能达到想要的效果等,所以,最后还是考虑用正则来自己写。

直接贴代码了,很简单的正则表达式:

<head>
  <meta http-equiv="x-ua-compatible" content="IE=EmulateIE7" />
  <title></title>
  <!-- http://www.cnblogs.com/babycool -->
  <script src="../js/jquery-1.7.2.min.js" type="text/javascript"></script>
  <script type="text/javascript">
    $(function () {
      $("#xxxxxx").keyup(function () {
        //如果输入非数字,则替换为'',如果输入数字,则在每4位之后添加一个空格分隔
        this.value = this.value.replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, "$1 ");
      })
    });
  </script>
</head>
<body>
  限制只能输入19个字符
  <input id="xxxxxx" type="text" name="name" value="" maxlength="19" />
  <br />

  <br />
  输入非数字替换为''
  <input type="text" name="name" value="" onkeyup="value=value.replace(/[^\d]/g,'')" />
  <br />
  <br />
</body>

页面效果:

浏览器的兼容性:

我在IE7.8.9.10下,firefox,chrome下测试均可以。

以上就是小编为大家带来的jQuery+正则+文本框只能输入数字的实现方法全部内容了,希望大家多多支持我们~

(0)

相关推荐

  • Jquery Validate 正则表达式实用验证代码大全

    手机号码验证 以下为引用内容: 复制代码 代码如下: jQuery.validator.addMethod("mobile", function(value, element) { var length = value.length; var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/ return this.optional(element) || (length == 11 && mobile.test(valu

  • js jquery验证银行卡号信息正则学习

    jquery代码 复制代码 代码如下: $("#bankAccountNumber").change(function(){ alert("1"); var account = $("channelForm.bankAccount.account").val(); alert("2"); var reg = /^\d{19}$/g; // 以19位数字开头,以19位数字结尾 if( !reg.test(account) ) {

  • jQuery使用正则表达式替换dom元素标签用法示例

    本文实例讲述了jQuery使用正则表达式替换dom元素标签用法.分享给大家供大家参考,具体如下: 这里主要通过如下正则表达式来替换dom元素中的标签: /<[\/]?(div)([^<>]*)>/g 具体示例代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title>

  • JavaScript正则表达式替换字符串中图片地址(img src)的方法

    本文实例讲述了JavaScript正则表达式替换字符串中图片地址(img src)的方法.分享给大家供大家参考,具体如下: 今天开发中遇到一个问题:如何替换一段HTML字符串中包含的所有img标签的src值? 开始想到的解决方法是: content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match) { console.log(match); }); 输出结果是: 复制代码 代码如下: &

  • jquery 正整数数字校验正则表达式

    限制用户输入的内容可以有如下做法: $("#id").keyup(fucntion(){//当键盘按下之后立即校验,并替换当前操作框中的内容 var value = $(this).val(); $(this).val(value.replace(reg,replace_data)); }); 最常见的就是限制用户只能录入数字 var reg = new RegExp("[^0-9]","g");  [^0-9]表示非0-9之间的数字,g表示全局

  • js使用Replace结合正则替换重复出现的字符串功能示例

    本文实例讲述了js使用Replace结合正则替换重复出现的字符串功能.分享给大家供大家参考,具体如下: 今天想把网站上关于用户搜索资料后的结果列表进行处理,如同百度搜索一样,加入我搜索框中输入"我要日日发网络",点击搜索按钮所得的结果列表中将会出现"我要日日发网络"字符串为红色. 我今天想到用js来进行处理,就是利用js内的replace函数对结果列表内的字符串进行指定字符串的替换工作,开始我是这样写的 <script type="text/Java

  • jQuery中校验时间格式的正则表达式小结

    代码中用到了jQuery,传入的参数是jQuery选择的input对象.原理:先用正则匹配,再提取时分秒,看其是否在正常的范围内. 复制代码 代码如下: /** * 检测时间是否符合格式 * @param {Object} timeTextBox */function checkTime(timeTextBox){    var time = timeTextBox.val();    var regTime = /^([0-2][0-9]):([0-5][0-9]):([0-5][0-9])$

  • jquery使用正则表达式验证email地址的方法

    本文实例讲述了jquery使用正则表达式验证email地址的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <html> <head> <title>jquery使用正则表达式验证email地址</title> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <script type=&qu

  • jquery 取字符串中数字的正则

    核心代码: 复制代码 代码如下: var paddleft = $(".teacher-title").css("padding-left").replace(/[^0-9]/ig, ""); var num=parseInt(paddleft); 演示代码: jquery获取页面样式中的值 .teacher-title{padding-left:50px; width:200px;} 看看那 var paddleft = $(".te

  • jquery正则表达式验证(手机号、身份证号、中文名称)

    本文实例需要验证的内容:中文姓名.手机号.身份证和地址,验证方法分享给大家供大家参考,具体内容如下 HTML(表单): <form action=""> <div class="form-group"> <label>姓名:</label> <input id="name" type="text"> </div> <div class="f

  • jQuery如何用正则表达式验证手机号、身份证号、中文名称

    数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChinaName(name) { var pattern = /^[\u4E00-\u9FA5]{1,6}$/; return pattern.test(name); } // 验证手机号 function isPhoneNo(phone) { var pattern = /^1[34578]\d{9}$

  • jQuery正则表达式的使用方法步骤详解

    本文主要和大家分享的就是jQuery学习中正则的使用,正则在jquery里面并没有比JavaScript多哪些知识,基本上是一样的,只是选择器更好了一点,一起来看看吧. 基础正则 1.正则表达式的创建 a) var checkNum = /^[A-Za-z0-9]+$/; b) var re=new RegExp("["+s1+"]","g"); 2.常用规则 a) 用户密码:/^[a-zA-Z][a-zA-Z0-9_]{5,20}$/ b) 邮

  • jquery里的正则表达式说明

    // A simple way to check for HTML strings or ID strings // (both of which we optimize for) quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/ 根据jquery的注释,其是匹配HTML字符串和ID选择器 一开始看这段正则表达式的时候,怎么匹配非<的0个或者多个,又匹配<,这样到底是匹配<还是不匹配呢?而且html标签,不

随机推荐