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 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
Nov 11 Javascript
菜鸟学习JavaScript小实验之函数引用
Nov 17 Javascript
JQuery获取各种宽度、高度(format函数)实例
Mar 04 Javascript
改变隐藏的input中value的值代码
Dec 30 Javascript
简单介绍JavaScript的变量和数据类型
Jun 03 Javascript
jQuery实现点击小图显示大图代码分享
Aug 25 Javascript
Angular 4.x 路由快速入门学习
May 03 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
详解vue中computed 和 watch的异同
Jun 30 Javascript
vue2中的keep-alive使用总结及注意事项
Dec 21 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
轻量级网页遮罩层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 Ajax中文乱码问题解决方法
2009/02/27 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
Use Word to Search for Files
2007/06/15 Javascript
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
Python的类实例属性访问规则探讨
2015/01/30 Python
Python函数式编程
2017/07/20 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
Flask配置Cors跨域的实现
2019/07/12 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
Django url 路由匹配过程详解
2021/01/22 Python
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
使用html2canvas实现浏览器截图的示例代码
2018/01/26 HTML / CSS
年度优秀员工获奖感言
2014/08/15 职场文书
护理专业自我评价
2015/03/11 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
python利用while求100内的整数和方式
2021/11/07 Python