Jquery 表单验证类介绍与实例


Posted in Javascript onJune 09, 2013

[html]

<form action="" method="post" id="formValidate"> 
数值:<input name="" type="text" validate="number" /><span></span><br/> 
浮点型:<input name="" type="text" validate="decimal" /><span></span><br/> 
英文:<input name="" type="text" validate="english" /><span></span><br/> 
大写英文:<input name="" type="text" validate="upper_english" /><span></span><br/> 
小写英文:<input name="" type="text" validate="lower_english" /><span></span><br/> 
邮件格式:<input name="" type="text" validate="email" /><span></span><br/> 
是否包含中文:<input name="" type="text" validate="chinese" /><span></span><br/> 
URL:<input name="" type="text" validate="url" /><span></span><br/> 
电话号码:<input name="" type="text" validate="phone" /><span></span><br/> 
IP地址:<input name="" type="text" validate="ip" /><span></span><br/> 
金额:<input name="" type="text" validate="money" /><span></span><br/> 
数值或者英文或者_:<input name="" type="text" validate="number_letter" /><span></span><br/> 
邮政编码:<input name="" type="text" validate="zip_code" /><span></span><br/> 
可用账号:<input name="" type="text" validate="account" /><span></span><br/> 
QQ:<input name="" type="text" validate="qq" /><span></span><br/> 
身份证:<input name="" type="text" validate="card" /><span></span><br/> 
数值 允许为空:<input name="" type="text" validate="number" empty='yes' /><span></span><br/> 
数值 长度 1-3:<input name="" type="text" validate="number" min=1 max=3 /><span></span><br/> 
数值 长度 1-3 允许为空:<input name="" type="text" validate="number" min=1 max=3 empty='yes'/><span></span><br/> 
<input name="" type="submit" /> 
</form> 
<script src="jquery.js" type="text/javascript"></script> 
<script src="formValidate.js" type="text/javascript"></script> 
<script type="text/javascript"> 
var formValidate = new formValidate(); 
formValidate.init({}); 
</script>

[javascript]
/* 
* 通用JS验证类 
* 使用方法: 
* var formValidate = new formValidate(); 
* formValidate.init({}); 
* 注意: 
* <form action="" method="post" id="formValidate"> 
* id为formValidate 
* 
* <input name="" type="text" validate="zip_code" empty="yes" min=10 max=10 /><span></span> 
* validate="zip_code" 验证是否是邮政编码 
* empty="yes" 验证是否允许为空 
* min=10 最小长度 
* max=10 最大长度 
* <span></span> 显示提示内容 
*/ 
var formValidate = function () { var _this = this; 
this.options = { 
number : {reg : /^[0-9]+$/, str : '必须为数字'}, 
decimal : {reg : /^[-]{0,1}(\d+)[\.]+(\d+)$/ , str : '必须为DECIMAL格式'}, 
english : {reg : /^[A-Za-z]+$/, str : '必须为英文字母'}, 
upper_english : {reg : /^[A-Z]+$/, str : '必须为大写英文字母'}, 
lower_english : {reg : /^[a-z]+$/, str : '必须为小写英文字母'}, 
email : {reg : /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/, str : 'Email格式不正确'}, 
chinese : {reg : /[\u4E00-\u9FA5\uf900-\ufa2d]/ig, str : '必须含有中文'}, 
url : {reg : /^[a-zA-z]+:\/\/[^s]*/, str : 'URL格式不正确'}, 
phone : {reg : /^[1][3][0-9]{9}$/ , str : '电话号码格式不正确'}, 
ip : {reg : /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/ , str : 'IP地址格式不正确'}, 
money : {reg : /^[0-9]+[\.][0-9]{0,3}$/ , str : '金额格式不正确'}, 
number_letter : {reg : /^[0-9a-zA-Z\_]+$/ , str : '只允许输入英文字母、数字、_'}, 
zip_code : {reg : /^[a-zA-Z0-9 ]{3,12}$/ , str : '邮政编码格式不正确'}, 
account : {reg : /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/ , str : '账号名不合法,允许5-16字符,字母下划线和数字'}, 
qq : {reg : /[1-9][0-9]{4,}/ , str : 'QQ账号不正确'}, 
card : {reg : /^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?$/ , str : '身份证号码不正确'}, 
}; 
//初始化 绑定表单 选项 
this.init = function (options) { 
this.setOptions(options); 
this.checkForm(); 
}; 
//设置参数 
this.setOptions = function (options) { 
for (var key in options) { 
if (key in this.options) { 
this.options[key] = options[key]; 
} 
} 
}; 
//检测表单 包括是否为空,最大值 最小值,正则验证 
this.checkForm = function () { 
$("#formValidate").submit(function () { 
var formChind = $("#formValidate").children(); 
var testResult = true; 
formChind.each(function (i) { 
var child = formChind.eq(i); 
var value = child.val(); 
var len = value.length; 
var childSpan = child.next(); 
//属性中是否为空的情况 
if (child.attr('empty')) { 
if (child.attr('empty') == 'yes' && value == '') { 
if (childSpan) { 
childSpan.html(''); 
} 
return; 
} 
} 
//属性中min 和 max 最大和最小长度 
var min = null; 
var max = null; 
if (child.attr('min')) min = child.attr('min'); 
if (child.attr('max')) max = child.attr('max'); 
if (min && max) { 
if (len < min || len > max) { 
if (childSpan) { 
childSpan.html(''); 
childSpan.html(' 字符串长度在' + min + '与' + max + '之间'); 
testResult = false; 
return; 
} 
} 
} else if (min) { 
if (len < min) { 
if (childSpan) { 
childSpan.html(''); 
childSpan.html(' 字符串长度应大于' + min); 
testResult = false; 
return; 
} 
} 
} else if (max) { 
if (len > max) { 
if (childSpan) { 
childSpan.html(''); 
childSpan.html(' 字符串长度应小于' + max); 
testResult = false; 
return; 
} 
} 
} 
//正则校验 
if (child.attr('validate')) { 
var type = child.attr('validate'); 
var result = _this.check(value, type); 
if (childSpan) { 
childSpan.html(''); 
if (result != true) { 
childSpan.html(' ' + result); 
testResult = false; 
} 
} 
} 
}); 
return testResult; 
}); 
}; 
//检测单个正则选项 
this.check = function (value, type) { 
if (this.options[type]) { 
var val = this.options[type]['reg']; 
if (!val.test(value)) { 
return this.options[type]['str']; 
} 
return true; 
} else { 
return '找不到该表单验证正则项'; 
} 
}; 

}
Javascript 相关文章推荐
javascript编程起步(第三课)
Feb 27 Javascript
JavaScript中的时间处理小结
Feb 24 Javascript
JavaScript中获取HTML元素值的三种方法
Jun 20 Javascript
jQuery中的ready函数与window.onload谁先执行
Jun 21 Javascript
通过BootStrap实现轮播图的实际应用
Sep 26 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
Oct 05 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
Dec 26 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
May 26 Javascript
微信小程序点击保存图片到本机功能
Dec 13 Javascript
vue 查看dist文件里的结构(多种方式)
Jan 17 Javascript
es6中let和const的使用方法详解
Feb 24 Javascript
Node.js API详解之 util模块用法实例分析
May 09 Javascript
js调用后台servlet方法实例
Jun 09 #Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
Jun 09 #Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
Jun 09 #Javascript
ScrollDown的基本操作示例
Jun 09 #Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
Jun 09 #Javascript
一个简单的弹性返回顶部JS代码实现介绍
Jun 09 #Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
Jun 08 #Javascript
You might like
社区(php&amp;&amp;mysql)四
2006/10/09 PHP
PHP新手上路(七)
2006/10/09 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
详解Python中for循环的使用
2015/04/14 Python
详解Django中的form库的使用
2015/07/18 Python
Python实现两个list对应元素相减操作示例
2017/06/09 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
python能开发游戏吗
2020/06/11 Python
python 如何调用远程接口
2020/09/11 Python
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
医药专业应届毕业生求职信范文
2014/01/01 职场文书
销售员岗位职责范本
2014/02/03 职场文书
消防工作实施方案
2014/06/09 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
golang 语言中错误处理机制
2021/08/30 Golang
基于redis+lua进行限流的方法
2022/07/23 Redis