如何用正则表达式限制文本框输入数字位数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用正则表达式限制文本框输入数字位数?相关的知识,希望对你有一定的参考价值。
请问各位正则大虾,如何使用正则来限制文本框输入内容只能为数字,并且数字的位数必须在5到9位呢?(用来判断是否为QQ号的)。
因为是一个用户注册的表单,里面有QQ号码一项,但不是必填项,所以不想用JS来判断长度,只要在文本框本身限制他输入的类型。
我在网上找到的只有限制为数字的正则。
<input style="ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9" onKeyPress="if ((event.keyCode<48 || event.keyCode>57)) event.returnValue=false">
但这还并不能符合我的要求,本人对正则了解的也不深入,不知道怎么修改踩合理,恳请大虾们能够帮我这个忙,谢谢!
如果方便的话,顺便把判断手机号或身高的正则也一并写给我。解决后 一定额外加分,谢谢各位了。
要求:
语法上要和上面差不多相类似哦,就是写到文本框里面的。
判断QQ号的:只能为数字,并且数字长度只能5-9位
判断手机号码:只能为数字,而且必须为13 开头,或15开头的11位数字。
身高:只能为整数或小数,并且第一位整数不能大于2。(这个不是很紧要的)
<input style="ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9 " onfocusout="var re=/^[1-9][0-9]4,8$/i; if (!(re.test(this.value))) alert('QQ号码不正确!'); this.focus();" >
判断QQ号的: [1-9][0-9]4,8
判断手机号码:[1][3,5][0-9]9
身高:[1,2]\d*\.\d*|[1,2]\d*
你是用.net么 .net生成的其实也是用js判断的
你文本框里面的代码也是js的
其他两个你慢慢测试了 参考技术A 这个很简单,你的语法中有要注意的地方 参考技术B ^\d5,9$
(^13\d9$)|(^15\d9$)
^[1,2]\.\d1,2$ 参考技术C ^[1-9]1,2[0-9]4,7$
input文本框输入限制(正则表达式)
1、只能输入纯数字:
<input type=‘text‘ onkeyup="this.value=this.value.replace(/[^0-9-]+/,‘‘);" />
2、只能输入数字和小数点
<input onkeyup="value=value.replace(/[^d.]/g,‘‘)" onblur="value=value.replace(/[^d.]/g,‘‘)"/>
3、只能输入数字和字母
<input onkeyup="value=value.replace(/[W]/g,‘‘) " onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[^d]/g,‘‘))">
以上是关于如何用正则表达式限制文本框输入数字位数?的主要内容,如果未能解决你的问题,请参考以下文章
markdown 限制文本框中只能输入数字(+, - )的正则表达式写法