上一篇写到了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;
            }
        }
    });

  废话在最后:这一篇没什么内容,只是贴下比较常用的验证(网上随处都是,在这里只是多一个可以摘抄的地方);写第一篇的时候想着这一篇多写点,把想而不敢、没说的废话全说出来,写下来,这才发现所谓的那些废话原来也是需要沉淀的,自己原来孤陋寡闻,知识匮乏。

  看样需要多读点书了,好吧,逛当当去了!!!(咱是行动派)

jQuery编写插件--封装全局函数的插件(一些常用的js验证表达式)的更多相关文章

  1. JQuery编写自己的插件(七)

    一:jQuery插件的编写基础1.插件的种类编写插件的目的是给一系列已经方法或函数做一个封装,以便在其他地方重复使用,方便后期维护和提高开发效率.常见的种类有以下三种:封装对象方法的插件

  2. 在vue项目中 如何定义全局变量 全局函数

    如题,在项目中,经常有些函数和变量是需要复用,比如说网站服务器地址,从后台拿到的:用户的登录token,用户的地址信息等,这时候就需要设置一波全局变量和全局函数 定义全局变量 原理: 设置一个专用的的 ...

  3. 在 Vuejs 项目中如何定义全局变量 全局函数

    在 Vuejs 项目中如何定义全局变量 全局函数 在项目中,经常有些函数和变量是需要复用,比如说网站服务器地址,从后台拿到的:用户的登录 token, 用户的地址信息等,这时候就需要设置一波全局变量和 ...

  4. 全局变量 全局函数vue 方法

    定义全局变量 原理: 设置一个专用的的全局变量模块文件,模块里面定义一些变量初始状态,用export default 暴露出去,在main.js里面使用Vue.prototype挂载到vue实例上面或 ...

  5. vue 定义全局函数和变量

    背景 最近我在整一个网站,介绍一些有意思的网站和实用工具的网站并且把他们收集起来,网站刚建有些不成熟希望给点意见 我用的是前端框架的vue, 但是我没有打包,直接甩到服务器上了, 不想扯了, 步骤 1 ...

  6. js的全局函数

    JS的全局函数,全局函数和window对象的函数不一样. 全局函数不属于任何一个内置对象. JS包含以下7个全局函数,用于一些常用的功能: escape(),unescape(); //编码,解码. ...

  7. js全局函数

    http://www.w3cschool.cc/jsref/jsref-obj-global.html 以前没搞懂JS的全局函数,全局函数和window对象的函数不一样.全局函数不属于任何一个内置对象 ...

  8. js中的全局函数

    以前没搞懂JS的全局函数,全局函数和window对象的函数不一样.全局函数不属于任何一个内置对象. JS包含以下7个全局函数,用于一些常用的功能:escape(),eval(),isNan(),isF ...

  9. 分享我常用的一些JS验证和函数

    下面是我常用一些JS验证和函数,有一些验证我直接写到了对象的属性里面了,可以直接通过对象.方法来调用//浮点数除法运算 function fdiv(a, b, n) { if (n == undefi ...

随机推荐

  1. 了解undefined、null、NaN的区别

    1.常规的解释,null是个对象,表示空值,undefined也是个对象,表示没有定义 2.详细分析 null 书上的解释(Javascript权威指南),Javascript的关键词null是一种特 ...

  2. compile ffmpeg

    download SDL 1.2.xxx version source code. 1) configure 2) make & make instll download recent ffm ...

  3. TableView不显示没内容的Cell怎么办?

    类似这种,我不想让下面那些空的显示. 很简单: self.tableView.tableFooterView = [[UIView alloc] init]; 加完这句之后就变成了这样:

  4. C语言局部变量和全局变量问题汇总

    1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变 ...

  5. 为 ASP.NET Web API 创建帮助页

    http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/creating-api-help-pages 以前实例 ...

  6. Extjs combo赋值与刷新的先后顺序

    今天在跟一个弹出框中的多选下拉框赋值并实现反选的时候.惊讶的发现:原来我之前对于Combo的赋值的认知观是错误的. 我开始在窗体的beforeshow事件中对Combo控件赋值.开始使用了setVal ...

  7. SQL-学习使用FOR XML PATH

    前言:本人SQL技术很烂,然后工作时间也不久,许多东西都还在学习中,说的不好的地方尽请谅解. 首先跟大家说一下我今天遇到的问题吧. 查出的数据有三列,第一列存放的是32位的GUID,Res_Name存 ...

  8. tlb,tlh,tli文件的关系

    tlb文件:com类型库文件.在需要使用对应com类的模块里,“#import ...*.tlb”使用之. tlh.tli文件:他们是vc++编译器解析tlb文件生成的标准c++文件.因为odl和tl ...

  9. Google maps not working IE11

    参考原因: http://www.easypagez.eu/maps/ieworking.html 如果还不行的话,在map的样式上加上width:100%;height:100% ;position ...

  10. HTML5标签及使用方法描述

    HTML 5 作为新一代的超文本标记语言,增加了许多标签.这些标签不但更有语义,而且功能强大.具体有以下标签: <article> 定义外部的内容.比如来自一个外部的新闻提供者的一篇新的文 ...