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 相关文章推荐
JS 密码强度验证(兼容IE,火狐,谷歌)
Mar 15 Javascript
两种简单实现菜单高亮显示的JS类代码
Jun 27 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
May 11 Javascript
js控制多图左右滚动切换效果代码分享
Aug 26 Javascript
jQuery实现商品活动倒计时
Oct 16 Javascript
原生js实现移动端瀑布流式代码示例
Dec 18 Javascript
javascript获取网页各种高宽及位置的方法总结
Jul 27 Javascript
在HTML文档中嵌入JavaScript的四种方法
May 07 Javascript
用Vue.js在浏览器中实现裁剪图像功能
Jun 18 Javascript
JavaScript实现简单的弹窗效果
May 19 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
May 31 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
Dec 03 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 curl模拟登录带验证码的网站
2015/11/30 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
php桥接模式应用案例分析
2019/10/23 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
JS动态增删表格行的方法
2016/03/03 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
layui实现三级联动效果
2019/07/26 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
python中的字典使用分享
2016/07/31 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
python把一个字符串切开的实例方法
2020/09/27 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
科室工作的个人自我评价
2013/10/30 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
大学生实习推荐信
2015/03/27 职场文书
党纪处分决定书
2015/06/24 职场文书
四大名著读书笔记
2015/06/25 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript
教你怎么用python实现字符串转日期
2021/05/24 Python
VUE递归树形实现多级列表
2022/07/15 Vue.js