统一验证标准,减少重复劳动,提高生产力。

当公司内部有多个Web项目的时候,统一验证标准就很有必要了。
统一不同项目的验证规则,比如 同为用户名 使用同一套标准,甚至用户名和机构名等也使用同一套标准。(明确定义非法字符的集合,比如@~.^)

除非客户有强烈的明确的要求,否则就按照公司的统一标准来做。

标准验证

required:某个选项必填,不能为空

remote:AJAX异步验证某个值的合法性,比如用户名是否存在

minLength:最小长度,比如用户名至少含有6个字符

maxLength:最大长度,比如用户名最多只能有20个字符

min:最小值,比如用户年龄最小为1岁

max:最大值,比如用户年龄最大为130岁

range:某一范围,比如用户的年龄在1岁到130岁之间

email:邮箱,比如leiwen@fansunion.cn

url:统一资源标识符,比如http://FansUnion.cn

date:日期,比如2013-08-19

number:12.3,12,1,0.5都可以(不要把number和digits搞混淆了,number和digits存在一定的交集)

digits:某个字段为数字字符,比如用户的年龄一定是数字字符,12可以,12.3不行

equalTo:要求某2个字段必须相同,比如密码和确认密码必须一致

mobile:手机号,比如15102780892

固话:6186555/07106186555

fax:传真,比如86135792468

ip:IP地址,比如192.168.1.1

身份证:110683198906020011

fileExtension:上传文件的扩展名,比如必须是文本文件.txt

optional:要么为空,如果不为空必须满足一定的条件,比如用户的备注可以为空,如果填写长度必须小于200

自定义验证

自己写语句:js/jquery if/else等

正则验证:自定义正则表达式进行验证

常用正则表达式
只能输入数字:“^[0-9]*$”
只能输入n位的数字:“^d{n}$”
只能输入至少n位数字:“^d{n,}$”
只能输入m-n位的数字:“^d{m,n}$”
只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”
只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”
只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”
只能输入非零的正整数:“^+?[1-9][0-9]*$”
只能输入非零的负整数:“^-[1-9][0-9]*$”
只能输入长度为3的字符:“^.{3}$”
只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”
只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”
只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”
只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”
只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$”
验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间,
只能包含字符、数字和下划线。

(常用正则表达式参考:http://www.cnblogs.com/wenmaoyu/archive/2011/07/21/2113124.html)

避免用户输入犯错

a.比如用户名的最大长度是20,可以设置input的maxlength=20。
b.比如电话号码只能是数字,只让用户输入数字。
c.给予用户必要的提示,比如*,foucs时的提示“最多输入20个字符”。

验证不通过的错误提示
a.把输入框的边框颜色改为红色等。
b.在输入框的后面,给出错误提示,比如"最多输入20个字符"。

验证的触发时机
a.blur 鼠标离开某个输入框后,给出校验提示(成功或失败)
b.sumbit 点击提交某个按钮时,给出校验提示(成功或失败)

验证组件
开源组件:jquery-validation
官方网站:http://jqueryvalidation.org/

自定义实现组件:公司自己内部使用的

jquery-validation演示例子: http://jquery.bassistance.de/validate/demo/marketo/

推荐网站:http://www.regexpal.com/ (A javascript regular expression tester)

原文参见:http://FansUnion.cn/articles/2277

提高生产力:Web前端验证的标准化的更多相关文章

  1. [置顶] 提高生产力:Web开发基础平台WebCommon的设计和实现

    Web开发中,存在着各种各样的重复性的工作.为了提高开发效率,不在当码农,我在思考和实践如何搭建一个Web开发的基础平台. Web开发基础平台的目标和功能 1.提供一套基础的开发环境,整合了常用的框架 ...

  2. 提高生产力:Web开发基础平台WebCommon的设计和实现

    Web开发中,存在着各种各样的重复性的工作.为了提高开发效率,不在当码农,我在思考和实践如何搭建一个Web开发的基础平台. Web开发基础平台的目标和功能 1.提供一套基础的开发环境,整合了常用的框架 ...

  3. 提高生产力:SpringMVC中,使用扩展数据类型TypedMap接收Web请求参数

    在Web项目中,如果前端MVC框架使用的是SpringMVC,可以使用Map接收前端请求参数,比bean要方便很多. 尤其是SpringMVC和Mybatis一起用的时候,用Map大大减少了需要的be ...

  4. WEB安全新玩法 [2] 防范前端验证绕过

    用户登录,几乎是所有 Web 应用所必须的环节.Web 应用通常会加入一些验证手段,以防止攻击者使用机器人自动登录,如要求用户输入图形验证码.拖动滑动条等.但是,如果验证的逻辑仅仅在前端执行,是很容易 ...

  5. web前端经典面试题大全及答案

    阅读目录 JavaScript部分 JQurey部分 HTML/CSS部分 正则表达式 开发及性能优化部分 本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题,并且都给出了我在 ...

  6. Web前端开发推荐阅读书籍、学习课程下载

    转自http://www.xuanfengge.com/fe-books.html 前言 学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 除了在项目中学 ...

  7. 2018最新Web前端经典面试试题及答案

    javascript: JavaScript中如何检测一个变量是一个String类型?请写出函数实现 typeof(obj) === "string" typeof obj === ...

  8. 初学者应该怎么学习前端?web前端的发展路线大剖析!

    写在最前: 优秀的Web前端开发工程师要在知识体系上既要有广度和深度!应该具备快速学习能力. 前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的基础知识,而且要学会运用 ...

  9. 每天成长一点---WEB前端学习入门笔记

    WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...

随机推荐

  1. HDU 3934

    /*这是用的有旋转卡壳的思想. 首先确定i,j,对k进行循环,知道找到第一个k使得cross(i,j,k)>cross(i,j,k+1),如果k==i进入下一次循环. 对j,k进行旋转,每次循环 ...

  2. POJ 1673

    可以证明O是三角形ABC的垂心. 作图辅助线,一个很重要的技巧是延长中线等中线. 可以证明三角形DNA全等于ABC.然后通过角度变换容易证明AQ垂直于BC. #include <iostream ...

  3. 【bzoj1025】【SCOI2009】【游戏】【dp】

    Description windy学会了一种游戏.对于1到N这N个数字,都有唯一且不同的1到N的数字与之相应.最開始windy把数字按顺序1,2.3.--,N写一排在纸上. 然后再在这一排以下写上它们 ...

  4. hdu2276---Kiki &amp; Little Kiki 2(矩阵)

    Problem Description There are n lights in a circle numbered from 1 to n. The left of light 1 is ligh ...

  5. [Sencha ExtJS &amp; Touch] 在Sencha(Extjs/Touch)应用程序中使用plugins(插件)和mixins(混入)

    原文链接:http://blog.csdn.net/lovelyelfpop/article/details/50853591 英文原文:Using Plugins and Mixins in You ...

  6. HDU 2027 汉字统计

    汉字统计 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  7. Linux Shell Scripting Cookbook 读书笔记 3

    patch, tree, head ,tail 1. 创建不可修改文件 chattr +i file chattr -i file 移除不可修改属性 2. 能够启动闪存或硬盘的混合ISO isohyb ...

  8. Solr快速入门(一)

    概述 本文档介绍了如何获取和运行Solr,将各种数据源收集到多个集合中,以及了解Solr管理和搜索界面. 首先解压缩Solr版本并将工作目录更改为安装Solr的子目录.请注意,基本目录名称可能随Sol ...

  9. oracle scott趣事

    Oracle里面是scott是个什么用户呢? 这个就要追朔到Oracle的创业阶段了, 1977年6月,埃里森,Bob Miner和Ed Oates在硅谷共同创办了一家名为软件开发实验室(Softwa ...

  10. P1304 哥德巴赫猜想

    题目描述 输入N(N<=10000),验证4~N所有偶数是否符合哥德巴赫猜想. (N为偶数). 如果一个数,例如10,则输出第一个加数相比其他解法最小的方案.如10=3+7=5+5,则10=5+ ...