jQuery编写插件--封装全局函数的插件(一些常用的js验证表达式)
上一篇写到了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验证表达式)的更多相关文章
- JQuery编写自己的插件(七)
一:jQuery插件的编写基础1.插件的种类编写插件的目的是给一系列已经方法或函数做一个封装,以便在其他地方重复使用,方便后期维护和提高开发效率.常见的种类有以下三种:封装对象方法的插件
- 在vue项目中 如何定义全局变量 全局函数
如题,在项目中,经常有些函数和变量是需要复用,比如说网站服务器地址,从后台拿到的:用户的登录token,用户的地址信息等,这时候就需要设置一波全局变量和全局函数 定义全局变量 原理: 设置一个专用的的 ...
- 在 Vuejs 项目中如何定义全局变量 全局函数
在 Vuejs 项目中如何定义全局变量 全局函数 在项目中,经常有些函数和变量是需要复用,比如说网站服务器地址,从后台拿到的:用户的登录 token, 用户的地址信息等,这时候就需要设置一波全局变量和 ...
- 全局变量 全局函数vue 方法
定义全局变量 原理: 设置一个专用的的全局变量模块文件,模块里面定义一些变量初始状态,用export default 暴露出去,在main.js里面使用Vue.prototype挂载到vue实例上面或 ...
- vue 定义全局函数和变量
背景 最近我在整一个网站,介绍一些有意思的网站和实用工具的网站并且把他们收集起来,网站刚建有些不成熟希望给点意见 我用的是前端框架的vue, 但是我没有打包,直接甩到服务器上了, 不想扯了, 步骤 1 ...
- js的全局函数
JS的全局函数,全局函数和window对象的函数不一样. 全局函数不属于任何一个内置对象. JS包含以下7个全局函数,用于一些常用的功能: escape(),unescape(); //编码,解码. ...
- js全局函数
http://www.w3cschool.cc/jsref/jsref-obj-global.html 以前没搞懂JS的全局函数,全局函数和window对象的函数不一样.全局函数不属于任何一个内置对象 ...
- js中的全局函数
以前没搞懂JS的全局函数,全局函数和window对象的函数不一样.全局函数不属于任何一个内置对象. JS包含以下7个全局函数,用于一些常用的功能:escape(),eval(),isNan(),isF ...
- 分享我常用的一些JS验证和函数
下面是我常用一些JS验证和函数,有一些验证我直接写到了对象的属性里面了,可以直接通过对象.方法来调用//浮点数除法运算 function fdiv(a, b, n) { if (n == undefi ...
随机推荐
- node.js 针对不同的请求路径(url) 做出不同的响应
边看这个边写的: http://wenku.baidu.com/link?url=C4yLe-TVH6060u_x4t34H3Ze8tjoL7HjJaKgH-TvHnEYl-T_gAMYwhmrCeM ...
- tar备份系统
一.概述 前几天我通过SSH正在调戏汤姆猫(tomcat)的时候,服务器上CentOS突然挂了.开机grub,使用光盘linux rescue修复提示找不到linux分区,然后想mount硬盘备份系统 ...
- Mysql数据库导入命令Source详解
Mysql数据库导入命令Source详解 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u root -p dat ...
- JavaScript总结1
一.JavaScript变量类型.声明.作用域 1.1 数字 number 小数和整数都叫number,以0x或0X开头的表示十六进制.当无穷大时,用Infinity表示(试试 9/0),其他非数字用 ...
- 基于嵌入式的c语言连接器
一个C程序可能是由多个分别编译的部分组成,这些不同部分通过一个通常叫做链接器(或连接器,载入器)的程序合并成一个整体.因为编译器一般每次只处理一个文件,所以它不能检测出那些需要一次了解多个源程序文 ...
- 回环栅栏CyclicBarrier
通过它可以实现让一组线程等待至某个状态之后再全部同时执行.叫做回环是因为当所有等待线程都被释放以后,CyclicBarrier可以被重用.我们暂且把这个状态就叫做barrier,当调用await()方 ...
- dedecms 首页分页功能
1.需要引入 <script language="javascript" type="text/javascript" src="{dede:g ...
- 关于H5中的Canvas API的探索
Canvas API 是H5中比较炫酷的一部分内容.可以通过它动态的生成和展示图形.图表.图像以及动画.下面我将学习一下Canvas API. 最后有书籍和源码. 一.概述: 1.基本元素: 在网页上 ...
- 将Cent0S 7的网卡名称eno16777736改为eth0
新建的虚拟机redhat linux7默认的网卡名称是eno16777736,找不到eth0如图所示: 修改网卡名称: 输入如下命令,进入对应目录,编辑文件: vim /etc/sysconfig/g ...
- c#调用JAVA的Webservice处理XML数据及批量轮询的实现方法
前段时间做一个调用外单位WEBSERVICE的项目,项目完成的功能其实很简单,就是我们单位有很多车友会员,我们想对他们提供车辆违章信息告之服务!我们这边交警部门给我们开放了WS的接口,我们就是想通过这 ...