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 相关文章推荐
Locate a File Using a File Open Dialog Box
Jun 18 Javascript
JavaScript学习笔记(十)
Jan 17 Javascript
JQuery实现倒计时按钮的实现代码
Mar 23 Javascript
javascript错误的认识不用关心内存管理
Dec 15 Javascript
javascript贪吃蛇完整版(源码)
Dec 09 Javascript
如何设置一定时间内只能发送一次请求
Feb 28 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
Jun 20 Javascript
easyui tree带checkbox实现单选的简单实例
Nov 07 Javascript
Bootstrap模态窗口源码解析
Feb 08 Javascript
js 输入框 正则表达式(菜鸟必看教程)
Feb 19 Javascript
10个最优秀的Node.js MVC框架
Aug 24 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
Apr 07 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
PHP移动文件指针ftell()、fseek()、rewind()函数总结
2014/11/18 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
php实现socket推送技术的示例
2017/12/20 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
Node.js pipe实现源码解析
2017/08/12 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
python生成器表达式和列表解析
2016/03/10 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
python实现快递价格查询系统
2020/03/03 Python
Python中return函数返回值实例用法
2020/11/19 Python
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
制定岗位职责的原则
2013/11/08 职场文书
《自选商场》教学反思
2014/02/14 职场文书
英文推荐信格式范文
2014/05/09 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
土建技术员岗位职责
2015/04/11 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
postgresql中如何执行sql文件
2023/05/08 PostgreSQL