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 06 Javascript
JavaScript 验证码的实例代码(附效果图)
Mar 22 Javascript
js编写一个简单的产品放大效果代码
Jun 27 Javascript
Vue 2.x教程之基础API
Mar 06 Javascript
AngularJS实现页面定时刷新
Mar 14 Javascript
JavaScript中立即执行函数实例详解
Nov 04 Javascript
详解基于Node.js的HTTP/2 Server实践
May 31 Javascript
原来JS还可以这样拆箱转换详解
Feb 01 Javascript
在vue中根据光标的显示与消失实现下拉列表
Sep 29 Javascript
Vue最新防抖方案(必看篇)
Oct 30 Javascript
vue中实现弹出层动画效果的示例代码
Sep 25 Javascript
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
轻量级网页遮罩层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 文件缓存的性能测试
2010/04/25 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
js实现五星评价功能
2017/03/08 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
详解webpack+express多页站点开发
2017/12/22 Javascript
js+css实现红包雨效果
2018/07/12 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
python概率计算器实例分析
2015/03/25 Python
Python 自动化表单提交实例代码
2017/06/08 Python
python re模块的高级用法详解
2018/06/06 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
教师师德承诺书
2014/03/26 职场文书
环保建议书500字
2014/05/14 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
学校运动会报道稿
2014/09/23 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
大学新生入学感想
2015/08/07 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python