javascript常用正则表达式汇总


Posted in Javascript onJuly 31, 2015

javascript常用正则表达式汇总

/**
 * 检验各种规则
 * @param str 检验的内容
 * @param cType 预设的检验规则 字符串[
 *             empty,   检验是否为空
 *             telphone,  座机手机号码
 *             allphone,  所有手机号码
 *             ydphone,  移动手机号码
 *             ltphone,  联通手机号码
 *             dxphone,  电信手机号码
 *             email,   邮箱
 *             url,    网址
 *             cn,     汉字
 *             image,   图片格式
 *             emscode,  邮政编码
 *             isEmpty,  检查是否为空
 *             isint,    整数
 *             isfloat,  判断是否为正小数
 *             isnumber,  判断为实数
 *             words,   判断是否为英文字母
 *             wordsAndNum,      判断是否为字母+数字
 *             wordsAndNumAndDownline, 判断是否由数字、26个英文字母或者下划线组成的字符串
 *             qq,           QQ检验
 *             personCard18,      身份证18位
 *             personCard15,      身份证15位
 *             ]
 * @param regex 自定义表达式 传入格式例如:"^\-?[1-9]+\d*$"
 *
 * @description cType 与 regex 只能有一个为空
 *       如 checkObjectByRegex("测试中文", "cn");  // 判断中文
 *       如 checkObjectByRegex("测试中文", null, "^[\u4e00-\u9fa5]+$");  // 自定义表达式正则
 * @return {boolean}
 */
function checkObjectByRegex(str, cType, regex) {
  /**
   * 定义验证各种格式类型的正则表达式对象
   */
  var Regexs = {
    telphone: (/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/), //座机手机号码
    allphone: (/^((13[0-9])|(14[57])|(15[0-9])|(17[678])|(18[0-9]))[0-9]{8}$/),     //所有手机号码
    ydphone: (/^((13[4-9])|(15[012789])|147|178|(18[23478]))[0-9]{8}$/),      //移动手机号码
    ltphone: (/^((13[0-2])|(145)|(15[56])|(176)|(18[56]))[0-9]{8}$/),          //联通手机号码
    dxphone: (/^((133)|(153)|(177)|(180)|(181)|(189))[0-9]{8}$/),        //电信手机号码
    email: (/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/),//邮箱
    url: (/(?:https|http|ftp|rtsp|mms):\/\/.+\/[\w]+\.[\w]+/),         //网址
    cn: (/^[\u4e00-\u9fa5]+$/i),                        //汉字
    image: (/\.jpg$|\.jpeg$|\.png$/i),                         //图片格式
    emscode: (/^[1-9]\d{5}$/),                         //邮政编码
    isint: (/^(\-)?[1-9]+\d*$/),                        //整数
    isfloat: (/^[0-9]+\.?[0-9]*$/),                 //判断是否为正小数
    isnumber: (/^[-\+]?\d+(\.\d+)?$/),               //判断为实数
    words: (/^[A-Za-z]+$/),                     //判断是否为英文字母
    wordsAndNum: (/^[A-Za-z0-9]+$/),                //判断是否为字母+数字
    wordsAndNumAndDownline: (/^\w+$/),               //判断是否由数字、26个英文字母或者下划线组成的字符串
    qq: (/^[1-9]\d{4,11}$/),                    //QQ
    personCard18: (/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d|X)$/),  //身份证18位
    personCard15: (/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/)     //身份证15位
  };
  var nReg;
  if (str == null || typeof(str) == "undefined") {
    str = "";
  }
  if (cType != null && typeof(cType) != "undefined") {
    if (cType == "isEmpty") {
      str = $.trim(str);
      if (str != null && typeof(str) != "undefined" && str != "") {
        return false;
      } else return true;
    }
    nReg = Regexs[cType];
    if (str == null || str == "") return false; //输入为空,认为是验证通过
    // 针对 18位身份证单独处理
    if (cType == 'personCard18') {
      var ary = str.match(Regexs[cType]);
      if (!(parseInt(ary[3]) >= 1900)) return false;
      var D = new Date(ary[3] + "/" + ary[4] + "/" + ary[5]);
      var isTrue = D.getFullYear() == ary[3] && (D.getMonth() + 1) == ary[4] && D.getDate() == ary[5];
      return isTrue;
    }
    // 针对 15位身份证单独处理
    if (cType == 'personCard15') {
      var ary = str.match(Regexs[cType]);
      var D = new Date("19" + ary[3] + "/" + ary[4] + "/" + ary[5]);
      var isTrue = D.getYear() == ary[3] && (D.getMonth() + 1) == ary[4] && D.getDate() == ary[5];
      return isTrue;
    }
  } else {
    // 自定义正则表达式处理
    if (regex != null && typeof(regex) != "undefined") {
      nReg = new RegExp(regex);
    } else {
      return false;
    }
  }
  return nReg.test(str);
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
JavaScript中的几个关键概念的理解-原型链的构建
May 12 Javascript
javascript日期转换 时间戳转日期格式
Nov 05 Javascript
jQuery实现的超简单点赞效果实例分析
Dec 31 Javascript
JavaScript九九乘法口诀表的简单实现
Oct 04 Javascript
Bootstrap导航条学习使用(二)
Feb 08 Javascript
js实现简易聊天对话框
Aug 17 Javascript
bootstrap中selectpicker下拉框使用方法实例
Mar 22 Javascript
深入理解Node内建模块和对象
Mar 12 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
Jun 15 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
Aug 20 Javascript
微信小程序页面渲染实现方法
Nov 06 Javascript
原生Javascript+HTML5一步步实现拖拽排序
Jun 12 Javascript
轻量级网页遮罩层jQuery插件用法实例
Jul 31 #Javascript
js实时获取并显示当前时间的方法
Jul 31 #Javascript
Javascript实现的Map集合工具类完整实例
Jul 31 #Javascript
JS特效实现图片自动播放并可控的效果
Jul 31 #Javascript
javascript实现列表滚动的方法
Jul 30 #Javascript
百度地图API之本地搜索与范围搜索
Jul 30 #Javascript
javaScript实现滚动新闻的方法
Jul 30 #Javascript
You might like
php中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
基于php编程规范(详解)
2017/08/17 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
2016/07/05 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
python time模块用法实例详解
2014/09/11 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
Pandas透视表(pivot_table)详解
2019/07/22 Python
详解Python打包分发工具setuptools
2019/08/05 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
Pygame的程序开始示例代码
2020/05/07 Python
python3字符串输出常见面试题总结
2020/12/01 Python
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
个人对照检查材料
2014/02/12 职场文书
继承公证书
2014/04/09 职场文书
卖房协议书样本
2014/10/30 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
采购员岗位职责
2015/02/03 职场文书
文明礼仪倡议书
2015/04/28 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书