jquery正则表达式匹配纯数字_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();

}

};

};

另一种方法:

用正则表达式限制只能输入数字:

οnkeyup="value=value.replace(/[^/d] /g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"

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

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

$(function () {

$("#xxxxxx").keyup(function () {

//如果输入非数字,则替换为'',如果输入数字,则在每4位之后添加一个空格分隔

this.value = this.value.replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, "$1 ");

})

});

限制只能输入19个字符

输入非数字替换为''

页面效果:

浏览器的兼容性:

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

以上就是本文的全部内容,希望这个方法也能给遇到相同问题的其他人带来帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值