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 相关文章推荐
将json当数据库一样操作的javascript lib
Oct 28 Javascript
将HTML格式的String转化为HTMLElement的实现方法
Aug 07 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
Dec 05 Javascript
基于jQuery实现Tabs选项卡自定义插件
Nov 21 Javascript
微信小程序侧边栏滑动特效(左右滑动)
Jan 23 Javascript
jQuery中Chosen三级联动功能实例代码
Mar 07 Javascript
Vue.use源码分析
Apr 22 Javascript
JavaScript基本语法_动力节点Java学院整理
Jun 26 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
Jul 20 Javascript
React实现轮播效果
Aug 25 Javascript
关于React Native 无法链接模拟器的问题
Jun 21 Javascript
Vue如何清空对象
Mar 03 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
oracle资料库函式库
2006/10/09 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
PHP中使用正则表达式提取中文实现笔记
2015/01/20 PHP
yepnope.js 异步加载资源文件
2011/09/08 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
Javascript实现倒计时时差效果
2017/05/18 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
调试Python程序代码的几种方法总结
2015/04/28 Python
python 内置函数filter
2017/06/01 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
python3下载抖音视频的完整代码
2019/06/05 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
Django数据统计功能count()的使用
2020/11/30 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
工程监理应届生求职信
2013/11/09 职场文书
护士实习生自我鉴定范文
2013/12/10 职场文书
2014年大学生自我评价
2014/01/19 职场文书
教师节商场活动方案
2014/02/13 职场文书
《开国大典》教学反思
2014/04/19 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
签订劳动合同通知书
2015/04/16 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
爱的教育观后感
2015/06/17 职场文书