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 相关文章推荐
javascript 计算两个整数的百分比值
Dec 26 Javascript
基于jquery的jqDnR拖拽溢出的修改
Feb 12 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
Javascript 是你的高阶函数(高级应用)
Jun 15 Javascript
jQuery获取字符串中出现最多的数
Feb 22 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
Sep 14 Javascript
js面向对象编程总结
Feb 16 Javascript
微信小程序 出现47001 data format error原因解决办法
Mar 10 Javascript
Vue 让元素抖动/摆动起来的实现代码
May 31 Javascript
JavaScript中变量提升与函数提升经典实例分析
Jul 26 Javascript
浅谈Javascript常用正则表达式应用
Mar 08 Javascript
微信小程序实现横向滚动导航栏效果
Dec 12 Javascript
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
Zerg剧情介绍
2020/03/14 星际争霸
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
python标准算法实现数组全排列的方法
2015/03/17 Python
Python实现的最近最少使用算法
2015/07/10 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
2020/06/03 Python
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
个人房屋买卖协议书(范本)
2014/10/04 职场文书
个人学习总结范文
2015/02/15 职场文书
毕业实习证明范本
2015/06/16 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
Python之基础函数案例详解
2021/08/30 Python