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 相关文章推荐
点图片上一页下一页翻页效果
Jul 09 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
Apr 01 Javascript
js模仿html5 placeholder适应于不支持的浏览器
Jan 13 Javascript
JavaScript中指定函数名称的相关方法
Jun 04 Javascript
jquery计算鼠标和指定元素之间距离的方法
Jun 26 Javascript
JS实现可展开折叠层的鼠标拖曳效果
Oct 09 Javascript
jQuery基于扩展简单实现倒计时功能的方法
May 14 Javascript
JS实现页面进入和返回定位到具体位置
Dec 08 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
JavaScript Dom 绑定事件操作实例详解
Oct 02 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
Oct 12 Javascript
Java 生成随机字符的示例代码
Jan 13 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
MySQL连接数超过限制的解决方法
2011/07/17 PHP
关于PHP开发的9条建议
2015/07/27 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP代码加密的方法总结
2020/03/13 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
Vue+webpack项目基础配置教程
2018/02/12 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
python实现识别相似图片小结
2016/02/22 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
python 读取修改pcap包的例子
2019/07/23 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
Spy++的使用方法及下载教程
2021/01/29 Python
精美的手工家居和生活用品:Nkuku
2019/11/01 全球购物
校园歌手大赛策划书
2014/01/17 职场文书
大学社团计划书
2014/05/01 职场文书
精神文明建设标语
2014/06/16 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
2019秋季运动会口号
2019/06/25 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android