文档章节

表单验证

 沧海野狼
发布于 2016/12/03 14:35
字数 317
阅读 5
收藏 0

正则表达式限制输入框只能输入数字     

代码如下: 
<inpu 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.phpblog.cc/pc/qdjs/jqjs/2015/1010/136.html

共有 人打赏支持
粉丝 1
博文 20
码字总数 1432
作品 0
东城
程序员

暂无文章

什么是集群、分布式、集中式、伪分布式

1. 集中式 将项目等部署到同一台机器上,对机器性能要求比较高,一般会用多台机器备份,否则,如果机器出现死机等状况,整个项目将不能运行。 eg:就好比你要盖一座房子,你房子就给一个人盖...

吴伟祥
51分钟前
1
0
微服务写的最全的一篇文章

今年有人提出了2018年微服务将疯狂至死,可见微服务的争论从未停止过。在这我将自己对微服务的理解整理了一下,希望对大家有所帮助。 1.什么是微服务 1)一组小的服务(大小没有特别的标准,...

Java烂猪皮
52分钟前
1
0
Java 并发编程原理

为什么要使用多线程? 通过多线程提高吞吐量 伸缩性比较好,可以增加 CPU 核心来提高程序性能 什么场景下使用多线程? 如:tomcat BIO Java 如何实现多线程? Thread、Runnable、ExecutorSer...

aelchao
今天
2
0
谨慎的覆盖clone方法

说在前面 有些专家级程序员干脆从来不去覆盖clone方法,也从来不去调用它,除非拷贝数组。 其他方式 可以提供一个构造函数或者工厂去实现clone功能。 相比于clone,它们有如下优势: 不依赖于...

XuePeng77
今天
1
0
什么是最适合云数据库的架构设计?

分布式数据库技术发展多年,但是在应用、业务的驱动下,分布式数据库的架构一直在不断发展和演进。 开源金融级分布式数据库SequoiaDB,经过6年的研发,坚持从零开始打造数据库核心引擎。在技...

巨杉数据库
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部