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基础知识filter()和find()实例说明
Jul 06 Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
Apr 27 Javascript
js Form.elements[i]的使用实例
Nov 13 Javascript
js中arguments的用法(实例讲解)
Nov 30 Javascript
javascript实现的闭包简单实例
Jul 17 Javascript
深入理解JavaScript中为什么string可以拥有方法
May 24 Javascript
KnockoutJS 3.X API 第四章之click绑定
Oct 10 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
Oct 12 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
Apr 13 jQuery
Angular2里获取(input file)上传文件的内容的方法
Sep 05 Javascript
vue 实现数字滚动增加效果的实例代码
Jul 06 Javascript
ES6 Set结构的应用实例分析
Jun 26 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项目开发中最常用的自定义函数整理
2010/12/02 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
destoon二次开发入门示例
2014/06/20 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
Jquery 实现table样式的设定
2015/01/28 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
JavaScript+H5实现微信摇一摇功能
2018/05/23 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
[02:33]DOTA2亚洲邀请赛趣味视频之吐真话筒
2018/03/31 DOTA
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
Python实现网站注册验证码生成类
2017/06/08 Python
Python虚拟环境项目实例
2017/11/20 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
Python 如何对文件目录操作
2020/07/10 Python
优秀的2014年两会精神解读
2014/03/17 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
会计工作岗位职责
2015/02/03 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python
css样式important规则的正确使用方式
2022/06/10 HTML / CSS