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 页面全选框实践代码
Apr 02 Javascript
jQuery 1.8 Release版本发布了
Aug 14 Javascript
js和php如何获取当前url的内容
Sep 22 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
Nov 28 Javascript
javascript与Python快速排序实例对比
Aug 10 Javascript
基于javascript实现数字英文验证码
Jan 25 Javascript
javascript数据结构之串的概念与用法分析
Apr 12 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
Aug 28 Javascript
JavaScrip数组删除特定元素的几种方法总结
Sep 06 Javascript
vue中vee validate表单校验的几种基本使用
Jun 25 Javascript
jQuery实现表格隔行换色
Sep 01 jQuery
详解element-ui动态限定的日期范围选择器代码片段
Jul 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新手上路(十三)
2006/10/09 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
PHP实现的简单日历类
2014/11/29 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
jscript之List Excel Color Values
2007/06/13 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
Angular工具方法学习
2016/12/26 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
Python数据分析之双色球中蓝红球分析统计示例
2018/02/03 Python
Selenium的使用详解
2018/10/19 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
出纳岗位职责
2013/11/09 职场文书
自荐信写法介绍
2014/01/25 职场文书
大学自主招生自荐信范文
2014/02/26 职场文书
施工单位安全责任书
2014/07/24 职场文书
大学感恩节活动总结
2015/05/05 职场文书