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 函数速查表
Feb 07 Javascript
JQuery的Validation插件中Remote验证的中文问题
Jul 26 Javascript
jquery如何实现锚点链接之间的平滑滚动
Dec 02 Javascript
Javscript删除数组中指定元素并返回新数组
Mar 06 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
Sep 23 Javascript
javascript中数组的定义及使用实例
Jan 21 Javascript
javascript实现支持移动设备画廊
Aug 24 Javascript
Vue Ajax跨域请求实例详解
Jun 20 Javascript
微信小程序实现自定义加载图标功能
Jul 19 Javascript
小程序实现新用户判断并跳转激活的方法
May 20 Javascript
解决layui表格的表头不滚动的问题
Sep 04 Javascript
Vue中实现回车键切换焦点的方法
Feb 19 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设置允许大文件上传示例代码
2014/03/10 PHP
yii框架配置默认controller和action示例
2014/04/30 PHP
常用PHP框架功能对照表
2014/10/23 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
jQuery TextBox自动完成条
2009/07/22 Javascript
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
python处理大日志文件
2019/07/23 Python
Django缓存系统实现过程解析
2019/08/02 Python
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
单位单身证明范本
2014/01/11 职场文书
学生保证书格式
2015/02/27 职场文书
2016特色励志班级口号
2015/12/24 职场文书
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android