如何用正则表达式限制文本框输入数字位数?

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:50:36
请问各位正则大虾,如何使用正则来限制文本框输入内容只能为数字,并且数字的位数必须在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。(这个不是很紧要的)

判断QQ号
<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的
其他两个你慢慢测试了

^\d{5,9}$
(^13\d{9}$)|(^15\d{9}$)
^[1,2]\.\d{1,2}$

这个很简单,你的语法中有要注意的地方

^[1-9]{1,2}[0-9]{4,7}$