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 window对象的top、parent、opener含义介绍
Dec 03 Javascript
jquery实现图片翻页效果
Dec 23 Javascript
JavaSript中变量的作用域闭包的深入理解
May 12 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
Jun 19 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
May 17 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
Jun 06 Javascript
前端微信支付js代码
Jul 25 Javascript
Centos6.8下Node.js安装教程
May 12 Javascript
原生JS实现自定义滚动条效果
Oct 27 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
Aug 22 Javascript
React如何解决fetch跨域请求时session失效问题
Nov 02 Javascript
vue-devtools的安装和使用步骤详解
Oct 17 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
php SQL Injection with MySQL
2011/02/27 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
PHP中文分词 自动获取关键词介绍
2012/11/13 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
移动端js图片查看器
2016/11/17 Javascript
浅谈javascript中的 “ && ” 和 “ || ”
2017/02/02 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
Python使用剪切板的方法
2017/06/06 Python
python检测IP地址变化并触发事件
2018/12/26 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
英国电气世界:Electrical World
2019/09/08 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
请客吃饭开场白
2015/06/01 职场文书
解析目标检测之IoU
2021/06/26 Python
入门学习Go的基本语法
2021/07/07 Golang