jQuery 版本的文本输入框检查器Input Check


Posted in Javascript onJuly 09, 2009
/** 
* power by wooshoo copyright 2008-2009 
* 程序名:JQuery 专用输入检查器 
* 内容:专门针对input[text password hidden]以及textarea的用户输入进行检查 
* 检查的范围包括:字符数、是否包含特殊字符、是否为整数、是否符合email格式、是否为电话号码、 
* 是否为网站地址、是否为图片地址、是否为浮点小数、是否为人民币货币、是否为日期格式 
* 是否为时间格式、是否为日期时间格式、是否为密码格式(仅包含大小写字母、数字及底划线)、 
* 暂不可用:是否为非英数特殊字符格式(即仅为中文、日文、韩文等大字符语言)、是否包含html标签、是否包含UBB标签、 
* 
*/ 
(function($) { 
var wshc = $.fn.check = function(){ 
return wshc.fn.init(this); 
} 
DATETIME = { 
FULL: "full", 
SIMPLE: "simple", 
ENGLISH: "english", 
JAPANESE: "japanese", 
CHINESE: "chinese" 
} 
wshc.fn = { 
init: function(obj){ 
wshc.fn.val = obj.val(); 
return wshc.fn; 
}, 
notNull: function(){ 
if(this.val !== "" || this.val !== undefined){ 
return true; 
} 
error("您没有输入任何字符。"); 
return false; 
}, 
number: function(min,max){//检查字数是否超过限制 
if(this.val.length >= min && this.val.length <= max){ 
return true; 
} 
error("您输入的字符超过了"+min+"-"+max+"的限制。"); 
return false; 
}, 
specialChar: function(pat){//检查是否包含特殊字符 
//特殊字符包括:\ / @ # $ % ^ & * = < > \n \r 
//如果需要自定义,可以在参数中设定 
pat = pat || /[\\\/\@\#\$\%\^\&\*\=\<\>\n\r]+/; 
error("您输入的字符包含了一些特殊字符。"); 
return mat(this.val,pat); 
}, 
isNum: function(len){//检查是否为数字 
if(!isNaN(this.val)){ 
return true; 
} 
error("您输入的不是数字。"); 
return false; 
}, 
integer: function(){//检查是否为整数 
if(this.val == parseInt(this.val)){ 
return true; 
} 
error("您输入的不是整数。"); 
return false; 
}, 
float: function(){//检查是否为小数 
if(this.isNum() && !this.integer()){ 
return true; 
} 
error("您输入的不是小数。"); 
return false; 
}, 
rmb: function(){//检查是否为货币(RMB标准格式为:0.00 or 10.00 除个位数外首位不为零) 
var pat = /^([1-9][0-9]+|[0-9])\.[0-9]{2}$/; 
error("您输入的不是人民币货币格式。"); 
return mat(this.val,pat); 
}, 
email: function(pat){//检查是否符合电子邮件格式 
pat = pat || /^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\-\.]+\.[a-zA-Z]{0,4}$/; 
error("您输入的不是电子邮件格式。"); 
return mat(this.val,pat); 
}, 
http: function(pat){//检查是否为网站的地址(包含http) 
pat = pat || /^(http|HTTP):\/\/[^s]*/; 
error("您输入的不是通用网址格式。"); 
return mat(this.val,pat); 
}, 
url: function(pat){//检查是否为通信地址 
pat = pat || /^[a-zA-z]+:\/\/[^s]*/; 
error("您输入的不是通用通信协议格式。"); 
return mat(this.val,pat); 
}, 
image: function(pat){//检查是否为图片地址(jpg gif png bmp jpeg ) 
pat = pat || /^(http|HTTP):\/\/[^s]*(jpg|JPG|png|PNG|gif|GIF|bmp|BMP|jpeg|JPEG)$/; 
error("您输入的不是网页允许的图片格式。"); 
return mat(this.val,pat); 
}, 
password: function(pat){ 
pat = pat || /^\w*$/; 
error("您输入的不是密码格式。"); 
return mat(this.val,pat); 
}, 
tel: function(pat){ 
pat = pat || /^\d{3}\-\d{8}$|^\d{4}\-\d{7}$/; 
error("您输入的不是中国地区的固定电话格式。"); 
return mat(this.val,pat); 
}, 
mobile: function(pat){ 
pat = pat || /^1\d{10}$/; 
error("您输入的不是中国地区的移动电话格式。"); 
return mat(this.val,pat); 
}, 
datatime: function(){ 
return DATETIME; 
}, 
date: function(type){ 
var pat; 
switch(type){ 
case DATETIME.FULL: 
pat = /^(([1-9]\d{0,3}|0)\-\d{2}\-\d{2})|(([1-9]\d{0,3}|0)\.\d{2}\.\d{2})|(([1-9]\d{0,3}|0)\/\d{2}\/\d{2})$/; 
break; 
case DATETIME.SIMPLE: 
pat = /^(\d{2}\-\d{1,2}\-\d{1,2})|(\d{2}\.\d{1,2}\.\d{1,2})|(\d{2}\/\d{1,2}\/\d{1,2})$/; 
break; 
case DATETIME.ENGLISH: 
pat = /^\w* \d{1,2},(([1-9]\d{0,3}|0)| ([1-9]\d{0,3}|0))$/; 
break; 
case DATETIME.JAPANESE: 
pat = /^(([1-9]\d{0,3}|0)年\d{2}月\d{2}日)$/; 
break; 
case DATETIME.CHINESE: 
pat = /^(([1-9]\d{0,3}|0)年\d{2}月\d{2}日)$/; 
break; 
} 
error("您输入的日期格式不正确。"); 
return mat(this.val,pat); 
}, 
time: function(type){ 
var pat; 
switch(type){ 
case DATETIME.FULL: 
pat = /^\d{2}:\d{2}:\d{2}$/; 
break; 
case DATETIME.SIMPLE: 
pat = /^\d{1,2}:\d{1,2}:\d{1,2}$/; 
break; 
case DATETIME.ENGLISH: 
pat = /^\d{1,2}:\d{1,2}:\d{1,2}$/; 
break; 
case DATETIME.JAPANESE: 
pat = /^\d{1,2}?r\d{1,2}分\d{1,2}秒$/; 
break; 
case DATETIME.CHINESE: 
pat = /^\d{1,2}时\d{1,2}分\d{1,2}秒$/; 
break; 
} 
error("您输入的时间格式不正确。"); 
return mat(this.val,pat); 
} 
} 
var mat = function(val,pat){ 
if (val.match(pat)) { 
return true; 
} 
return false; 
} 
var error = function(err){ 
wshc.fn.error = err || "无格式错误。"; 
} 
})(jQuery); 
使用方法: 
前提是,您已经导入了jQuery3.2的包了 
JS: 
<scrpit> 
$(function(){ 
//检查字数是否超过限制 
$(#"do_check").bind("click",function(){ 
alert($("#wooshoo_ipt").check().number()); 
alert($("#wooshoo_ipt").check().error); 
}); 
}); 
</script> 
HTML: 
<body> 
请输入:<input id="wooshoo_ipt" type="text" /><br/> 
<a id="do_check">执行检查</a> 
</body>
Javascript 相关文章推荐
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
May 08 Javascript
简单纯js实现点击切换TAB标签实例
Aug 23 Javascript
基于jQuery实现简单的折叠菜单效果
Nov 23 Javascript
javascript 动态生成css代码的两种方法
Mar 17 Javascript
详解Vue 2.0封装axios笔记
Jun 22 Javascript
如何去除vue项目中的#及其ie9兼容性
Jan 11 Javascript
微信小程序合法域名配置方法
May 06 Javascript
vue学习笔记之作用域插槽实例分析
Feb 01 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
vue中利用iscroll.js解决pc端滚动问题
Feb 15 Javascript
JavaScript DOM常用操作代码汇总
Jul 03 Javascript
Vue实现点击当前行变色
Dec 14 Vue.js
window.onload 加载完毕的问题及解决方案(下)
Jul 09 #Javascript
window.onload 加载完毕的问题及解决方案(上)
Jul 09 #Javascript
最简单的jQuery程序 入门者学习
Jul 09 #Javascript
Jquery 组合form元素为json格式,asp.net反序列化
Jul 09 #Javascript
JS 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 #Javascript
JavaScript 继承的实现
Jul 09 #Javascript
jquery text,radio,checkbox,select操作实现代码
Jul 09 #Javascript
You might like
php中在PDO中使用事务(Transaction)
2011/05/14 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
php导出excel格式数据问题
2014/03/11 PHP
PHP多进程编程实例
2014/10/15 PHP
php取得字符串首字母的方法
2015/03/25 PHP
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
React组件对子组件children进行加强的方法
2019/06/23 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
django+echart数据动态显示的例子
2019/08/12 Python
Python socket模块方法实现详解
2019/11/05 Python
基于Python获取城市近7天天气预报
2019/11/26 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
查摆剖析材料范文
2014/09/30 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
总经理致辞
2015/07/29 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL