天天看點

jQuery 版本的文本輸入框檢查器Input Check

/** 

* 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){ 

error("您輸入的字元超過了"+min+"-"+max+"的限制。"); 

specialChar: function(pat){//檢查是否包含特殊字元 

//特殊字元包括:\ / @ # $ % ^ & * = < > \n \r 

//如果需要自定義,可以在參數中設定 

pat = pat || /[\\\/\@\#\$\%\^\&\*\=\<\>\n\r]+/; 

error("您輸入的字元包含了一些特殊字元。"); 

return mat(this.val,pat); 

isNum: function(len){//檢查是否為數字 

if(!isNaN(this.val)){ 

error("您輸入的不是數字。"); 

integer: function(){//檢查是否為整數 

if(this.val == parseInt(this.val)){ 

error("您輸入的不是整數。"); 

float: function(){//檢查是否為小數 

if(this.isNum() && !this.integer()){ 

error("您輸入的不是小數。"); 

rmb: function(){//檢查是否為貨币(RMB标準格式為:0.00 or 10.00 除個位數外首位不為零) 

var pat = /^([1-9][0-9]+|[0-9])\.[0-9]{2}$/; 

error("您輸入的不是人民币貨币格式。"); 

email: function(pat){//檢查是否符合電子郵件格式 

pat = pat || /^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\-\.]+\.[a-zA-Z]{0,4}$/; 

error("您輸入的不是電子郵件格式。"); 

http: function(pat){//檢查是否為網站的位址(包含http) 

pat = pat || /^(http|HTTP):\/\/[^s]*/; 

error("您輸入的不是通用網址格式。"); 

url: function(pat){//檢查是否為通信位址 

pat = pat || /^[a-zA-z]+:\/\/[^s]*/; 

error("您輸入的不是通用通信協定格式。"); 

image: function(pat){//檢查是否為圖檔位址(jpg gif png bmp jpeg ) 

pat = pat || /^(http|HTTP):\/\/[^s]*(jpg|JPG|png|PNG|gif|GIF|bmp|BMP|jpeg|JPEG)$/; 

error("您輸入的不是網頁允許的圖檔格式。"); 

password: function(pat){ 

pat = pat || /^\w*$/; 

error("您輸入的不是密碼格式。"); 

tel: function(pat){ 

pat = pat || /^\d{3}\-\d{8}$|^\d{4}\-\d{7}$/; 

error("您輸入的不是中國地區的固定電話格式。"); 

mobile: function(pat){ 

pat = pat || /^1\d{10}$/; 

error("您輸入的不是中國地區的行動電話格式。"); 

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})$/; 

case DATETIME.ENGLISH: 

pat = /^\w* \d{1,2},(([1-9]\d{0,3}|0)| ([1-9]\d{0,3}|0))$/; 

case DATETIME.JAPANESE: 

pat = /^(([1-9]\d{0,3}|0)年\d{2}月\d{2}日)$/; 

case DATETIME.CHINESE: 

error("您輸入的日期格式不正确。"); 

time: function(type){ 

pat = /^\d{2}:\d{2}:\d{2}$/; 

pat = /^\d{1,2}:\d{1,2}:\d{1,2}$/; 

pat = /^\d{1,2}時\d{1,2}分\d{1,2}秒$/; 

pat = /^\d{1,2}時\d{1,2}分\d{1,2}秒$/; 

error("您輸入的時間格式不正确。"); 

var mat = function(val,pat){ 

if (val.match(pat)) { 

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>

本文轉自linzheng 51CTO部落格,原文連結:http://blog.51cto.com/linzheng/1081611

繼續閱讀