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 相关文章推荐
jquery拖动插件(jquery.drag)使用介绍
Jun 18 Javascript
Javascript学习笔记之数组的构造函数
Nov 23 Javascript
jQuery实现复选框成对选择及对应取消的方法
Mar 03 Javascript
jQuery统计指定子元素数量的方法
Mar 17 Javascript
浅谈如何实现easyui的datebox格式化
Jun 12 Javascript
JavaScript中关于iframe滚动条的去除和保留
Nov 17 Javascript
bootstrap css样式之表单
Jan 19 Javascript
原生js实现电商侧边导航效果
Jan 19 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
Jul 24 jQuery
bootstrap下拉框动态赋值方法
Aug 10 Javascript
JS实现简单的点赞与踩功能示例
Dec 05 Javascript
基于iview的router常用控制方式
May 30 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
短波收音机简介
2021/03/01 无线电
BBS(php & mysql)完整版(四)
2006/10/09 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
javascript读取RSS数据
2007/01/20 Javascript
禁止F5等快捷键的JS代码
2007/03/06 Javascript
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
python实现删除文件与目录的方法
2014/11/10 Python
Python之re操作方法(详解)
2017/06/14 Python
Python异常处理操作实例详解
2018/05/10 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
python tqdm库的使用
2020/11/30 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
小学生自我评价范例
2013/09/24 职场文书
职专应届生求职信
2013/11/16 职场文书
幼儿园教学管理制度
2014/02/04 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
公民授权委托书范本
2014/09/17 职场文书
加入学生会自荐书
2015/03/05 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
python urllib库的使用详解
2021/04/13 Python
阿里云日志过滤器配置日志服务
2022/04/09 Servers