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 相关文章推荐
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
Aug 24 Javascript
JavaScript设计模式之单例模式实例
Sep 24 Javascript
node.js中的fs.fchown方法使用说明
Dec 16 Javascript
EasyUI中datagrid在ie下reload失败解决方案
Mar 09 Javascript
JavaScript自定义等待wait函数实例分析
Mar 23 Javascript
js字符串截取函数slice、substring和substr的比较
May 17 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
Aug 01 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
Oct 13 Javascript
解决element UI 自定义传参的问题
Aug 22 Javascript
vue 强制组件重新渲染(重置)的两种方案
Oct 29 Javascript
uniapp微信小程序实现一个页面多个倒计时
Nov 01 Javascript
js前端对于大量数据的展示方式及处理方法
Dec 02 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
德生H-501的评价与改造
2021/03/02 无线电
PHP分页函数代码(简单实用型)
2010/12/02 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
2017/02/09 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
Node.js API详解之 net模块实例分析
2020/05/18 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python服务器与android客户端socket通信实例
2014/11/12 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
python迭代dict的key和value的方法
2018/07/06 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
html5启动原生APP总结
2020/07/03 HTML / CSS
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
大学专科生推荐信范文
2013/11/23 职场文书
《问银河》教学反思
2014/02/19 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
协议书的格式
2014/04/23 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
公司口号大全
2014/06/11 职场文书
施工单位安全责任书
2014/07/24 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
史上最牛的辞职信
2015/02/28 职场文书
幼师求职自荐信
2015/03/26 职场文书
2015年化验室工作总结
2015/04/23 职场文书
Go 中的空白标识符下划线
2022/03/25 Golang