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>
jQuery 版本的文本输入框检查器Input Check
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@