上一篇写到了jQuery插件的3种类型,介绍了第一种类型的写法--封装jQuery对象的方法插件。这一篇要介绍第二种插件类型:封装全局函数的插件;这类插件就是在jQuery命名空间内部添加函数;这类插件就是普通的函数,没有什么特别的地方。既然普通+无特点...那这篇还要讲什么呢,忧思辗转呢。
那就先开始讲解第二类插件吧,记得上面讲过,所有的插件都放在下面的一段代码之内:
; (function ($) {
//编写代码
})(jQuery);
封装全局函数的插件实现的通过$.extend();方法
; (function ($) {
//编写代码
$.extend({
//编写相应函数
});
})(jQuery);
ok,回顾了点知识,下面就写个简单的验证方法吧;验证日期时间方法
; (function ($) {
//扩展jQuery类本身,为类添加新方法(不需要实例化jQuery对象就可以执行)
$.extend({
isDateTime: function (value) {
//验证日期时间:2013-9-9 10:00:00
var regex = /^\d{1,4}(\-|\/)((0?\d)|10|11|12)(\-|\/)(([1-2]\d|30|31)|(0?\d)) ((2[0-3]|\d|[0-1]\d)\:[0-5][0-9])(\:[0-5][0-9])?$/;
if (regex.test(value)) {
return true;
} else {
return false;
}
}
});
})(jQuery);
上面的代码没什么要讲解的,有的话就是正则表达式了,像比较常用的表达式,网上随处可见,开始时拷贝,可以理解,然而,还是要了解熟悉一下正则表达式,不至于一段密密麻麻的字符串,你不认识它,它更不认识你。程序猿本就寂寞,那就互相认识,权当排遣寂寞吧。
正则表达式不是几句话就讲完的,网上or书本上对应知识还是要了解下,我建议的一本书是,《javascript高级编程》还是可以看下的。
下面就把常用的一些正则表达式贴出来;晒晒,阴雨连绵,小心搁置发霉。
//扩展jQuery类本身,为类添加新方法(不需要实例化jQuery对象就可以执行)
$.extend({
isMobile: function (value) {
var tmp = /^1[3-9]\d{9}$/;
var flag = tmp.test(value);
if (!flag) {
return false;
} else {
return true;
}
},
isUri: function (value) {
var myreg = /((http|ftp|https|file):\/\/([\w\-]+\.)+[\w\-]+(\/[\w\u4e00-\u9fa5\-\.\/?\@\%\!\&=\+\~\:\#\;\,]*)?)/;
if (myreg.test(value)) {
return true;
}
else {
return false;
}
},
isEmail: function (value) {
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
if (myreg.test(value)) {
return true;
}
else {
return false;
}
},
isNumber: function (value) {
//验证以为数字0-9之间
var _checkStr = /^[0-9]$/;
if (!_checkStr.test(value)) {
return false;
}
else {
return true;
}
},
isInteger: function (value) {
//验证是否是整数
var regex = /^[-+]?\d*$/;
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isDouble: function (value) {
var regex = /^[-\+]?\d+(\.\d+)?$/;
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isTime: function (value) {
//验证时间格式:10:10:00 也可以是时:分格式
var time = /^((2[0-3]|\d|[0-1]\d)\:[0-5][0-9])(\:[0-5][0-9])?$/;
if (time.test(value)) {
return true;
} else {
return false;
}
},
isDate: function (value) {
//验证日期:2013-01-09 or 2013/2/2(月和日可以是一位和两位数字)
var regex = /^\d{1,4}(\-|\/)((0?\d)|10|11|12)(\-|\/)(([1-2]\d|30|31)|(0?\d))$/;
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isDateTime: function (value) {
//验证日期时间:2013-9-9 10:00:00
var regex = /^\d{1,4}(\-|\/)((0?\d)|10|11|12)(\-|\/)(([1-2]\d|30|31)|(0?\d)) ((2[0-3]|\d|[0-1]\d)\:[0-5][0-9])(\:[0-5][0-9])?$/;
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isZIP: function (value) {
//邮编6为数字
var regex = /^\d{6}$/;
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isCard: function (value) {
//验证身份证号
var regex = /^\d{15}(\d{2}[A-Za-z0-9])?$/
if (regex.test(value)) {
return true;
} else {
return false;
}
},
checkPassWordLen: function (value) {
var regex = /^[a-zA-Z0-9]{6-20}$/; //验证密码,字符串数字,长度6-20位
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isIP4: function (value) {
//ip地址
var regex = /^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$/;
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isTel: function (value) {
var regex = /^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$/; //电话号码的函数(包括验证国内区号,国际区号,分机号)
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isPicture: function (value) {
var regex = /(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$/; //图片
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isLetter: function (value) {
var regex = /^[a-zA-Z]+$/; //字母
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isUpperLetter: function (value) {
var regex = /^[A-Z]+$/;
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isLowerLetter: function (value) {
var regex = /^[a-z]+$/;
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isQQ: function (value) {
var regex = /^[1-9]*[1-9][0-9]*$/; //QQ号码
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isRar: function (value) {
var regex = /(.*)\\.(rar|zip|7zip|tgz)$/; //压缩文件
if (regex.test(value)) {
return true;
} else {
return false;
}
},
isChinese: function (value) {
var regex = /^[\u0391-\uFFE5]+$/; //仅中文
if (regex.test(value)) {
return true;
} else {
return false;
}
}
});
废话在最后:这一篇没什么内容,只是贴下比较常用的验证(网上随处都是,在这里只是多一个可以摘抄的地方);写第一篇的时候想着这一篇多写点,把想而不敢、没说的废话全说出来,写下来,这才发现所谓的那些废话原来也是需要沉淀的,自己原来孤陋寡闻,知识匮乏。
看样需要多读点书了,好吧,逛当当去了!!!(咱是行动派)