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 相关文章推荐
Prototype使用指南之hash.js
Jan 10 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
Mar 14 Javascript
js中的preventDefault与stopPropagation详解
Jan 29 Javascript
jQuery实现3D文字特效的方法
Mar 10 Javascript
javascript先序遍历DOM树的方法
Feb 27 Javascript
浅谈angular.js跨域post解决方案
Aug 30 Javascript
JS实现颜色的10进制转化成rgba格式的方法
Sep 04 Javascript
mpvue小程序仿qq左滑置顶删除组件
Aug 03 Javascript
35个最好用的Vue开源库(史上最全)
Jan 03 Javascript
深度了解vue.js中hooks的相关知识
Jun 14 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
Apr 08 Javascript
mpvue 项目初始化及实现授权登录的实现方法
Jul 20 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学习资料汇总与网址
2007/03/16 PHP
PHP几个数学计算的内部函数学习整理
2011/08/06 PHP
PHP中的替代语法介绍
2015/01/09 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
Python基础学习之常见的内建函数整理
2017/09/06 Python
python基于递归解决背包问题详解
2019/07/03 Python
python mysql断开重连的实现方法
2019/07/26 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
大学生水文观测实习自我鉴定
2013/09/29 职场文书
财务会计专业自荐书
2014/06/30 职场文书
会计个人实习计划书
2014/08/15 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
车间统计员岗位职责
2015/04/14 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
ant design charts 获取后端接口数据展示
2022/05/25 Javascript