正则表达式限制输入框只能输入数字
代码如下:
<input type="text" onkeyup="this.value=this.value.replace(/[^/d]/g,'') " onafterpaste="this.value=this.value.replace(/[^/d]/g,'') " name="f_order" value="1"/>
其中,onafterpaste防止用户从其它地方复制内容粘贴到输入框
输入框只能输入字母和下横线的正则表达式
<input onkeyup="this.value=this.value.replace(/[^_a-zA-Z]/g,'')" onpaste="this.value=this.value.replace(/[^_a-zA-Z]/g,'')">
输入框只能输入字母数字和下横线的正则表达式
<input onkeyup="this.value=this.value.replace(/[^/w]/g,'')" onpaste="this.value=this.value.replace(/[^/w]/g,'')">
或
<input onkeyup="this.value=this.value.replace(/[/W]/g,'')" onpaste="this.value=this.value.replace(/[/W]/g,'')">
不过上面使用的是替换的方法,因为替换的执行需要一定的时间,所以就存在个漏洞。就是只要你操作够快,在替换执行前你就提交了表单
那上面的限制就失效了。
要想没有上面的BUG,就得改下触发事件。上面是onkeyup,需要改成onkeypress。代码如下
<input onkeypress="if (event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;" >
这里使用的是ASCII码,'0'的ASCII码为48,'9'的ASCII码为57。可以根据自己的需要修改条件。
这个没有处理粘贴事件,就是用户可以粘贴过来其它字符,只要把上面的onkeyup和onpaste事件加过来就可以了
此文章由 http://www.ositren.com 收集整理 ,地址为:
http://www.ositren.com/htmls/67593.html