jQuery正则验证文本框只能输入数字

发布时间:2020-12-07编辑:脚本学堂
介绍下使用jquery正则验证文本框只允许输入数字的方法,比如只允许输入16位数字这样的功能,有需要的朋友参考下吧。

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>用正则表达式限制只能输入数字_www.jb200.com</title>
<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>

页面效果:
jquery限制<a href=http://www.jb200.com/zt/textboxzhinengshurushuzi/ target=_blank class=infotextkey>文本框只能输入数字</a>

浏览器的兼容性:
在IE7.8.9.10下,firefox,chrome下测试通过。