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

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。(这个不是很紧要的)

判断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的
其他两个你慢慢测试了
参考技术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,‘‘))">

以上是关于如何用正则表达式限制文本框输入数字位数?的主要内容,如果未能解决你的问题,请参考以下文章

在C#中怎么用正则表达式限制文本框内不能输入数字?

用正则表达式限制文本框只能输入数字和+

markdown 限制文本框中只能输入数字(+, - )的正则表达式写法

markdown 限制文本框中只能输入数字(+, - )的正则表达式写法

使用正则表达式限制文本框中的输入[重复]

replace限制文本框只能输入数字,数字和字母等的正则表达式