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 相关文章推荐
js indexOf()定义和用法
Oct 21 Javascript
JQuery写动态树示例代码
Jul 31 Javascript
JavaScript splice()方法详解
Sep 22 Javascript
jquery 使用简明教程
Mar 05 Javascript
html的DOM中document对象anchors集合用法实例
Jan 21 Javascript
TypeScript Type Innference(类型判断)
Mar 10 Javascript
微信小程序 教程之注册页面
Oct 17 Javascript
jQuery延迟执行的实现方法
Dec 21 Javascript
Vue中的v-for循环key属性注意事项小结
Aug 12 Javascript
浅谈vue引用静态资源需要注意的事项
Sep 28 Javascript
clipboard在vue中的使用的方法示例
Oct 19 Javascript
js实现可爱的气泡特效
Sep 05 Javascript
纯JS实现本地图片预览的方法
Jul 31 #Javascript
javascript动画算法实例分析
Jul 31 #Javascript
jquery实现手机号码选号的方法
Jul 31 #Javascript
javascript文本模板用法实例
Jul 31 #Javascript
Javascript实现网络监测的方法
Jul 31 #Javascript
jquery模拟alert的弹窗插件
Jul 31 #Javascript
JSON字符串转JSON对象
Jul 31 #Javascript
You might like
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
php中session使用示例
2014/03/29 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
PHP中Http协议post请求参数
2015/11/02 PHP
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
值得收藏的vuejs安装教程
2017/11/21 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
js实现简单图片拖拽效果
2021/02/22 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
用C++封装MySQL的API的教程
2015/05/06 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
python程序变成软件的实操方法
2019/06/24 Python
python实现复制大量文件功能
2019/08/31 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书