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 相关文章推荐
javascript 写类方式之一
Jul 05 Javascript
Jquery 常用方法经典总结
Jan 28 Javascript
js操作iframe的一些方法介绍
Jun 25 Javascript
深入理解JS中的变量及作用域、undefined与null
Mar 04 Javascript
Angular实现form自动布局
Jan 28 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
May 18 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
Aug 19 Javascript
js+css3制作时钟特效
Oct 16 Javascript
JS实现类似51job上的地区选择效果示例
Nov 17 Javascript
微信小程序 less文件编译成wxss文件实现办法
Dec 05 Javascript
Node登录权限验证token验证实现的方法示例
May 25 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
Nov 12 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 数组使用详解 推荐
2011/06/02 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
按下回车键指向下一个位置的一个函数代码
2014/03/10 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
跟老齐学Python之折腾一下目录
2014/10/24 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
python实现淘宝秒杀脚本
2020/06/23 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
Numpy与Pytorch 矩阵操作方式
2019/12/27 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
Pandas的Apply函数具体使用
2020/07/21 Python
使用django自带的user做外键的方法
2020/11/30 Python
Python 实现集合Set的示例
2020/12/21 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
篝火晚会主持词
2014/03/25 职场文书
篮球兴趣小组活动总结
2014/07/07 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
python基础学习之递归函数知识总结
2021/05/26 Python
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫