jQuery使⽤正则表达式限制⽂本框只能输⼊数字
⽹站中的⼀个⼩功能:要求⽤户只能输⼊16位数字。
试过javascript的⽅法:
如:⼀种⽅法:
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
{
}
else //Firefox
{
e.preventDefault();
}
};
};
另⼀种⽅法:
⽤正则表达式限制只能输⼊数字:
onkeyup="place(/[^/d] /g,'') "onbeforepaste="clipboardData.setData('text',Data('text').replace(/[^/d]/g,''))"
上⾯的两种⽅法我均⽤过,但多少都会出现⼀些问题,⽐如浏览器的兼容性问题,不能达到想要的效果等,所以,最后还是考虑⽤正则来⾃⼰写。
直接贴代码了,很简单的正则表达式:
<head>
<meta http-equiv="x-ua-compatible" content="IE=EmulateIE7" />
<title></title>
<!-- wwwblogs/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 = place(/[^\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="place(/[^\d]/g,'')" />
<br />
<br />
</body>
页⾯效果:
浏览器的兼容性:
我在IE7.8.9.10下,firefox,chrome下测试均可以。
以上就是本⽂的全部内容,希望这个⽅法也能给遇到相同问题的其他⼈带来帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论