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+php实现搜索框自动提示
Nov 28 Javascript
web前端设计师们常用的jQuery特效插件汇总
Dec 07 Javascript
jQuery基础语法实例入门
Dec 23 Javascript
超详细的javascript数组方法汇总
Nov 21 Javascript
用JS实现图片轮播效果代码(一)
Jun 26 Javascript
jQuery元素选择器实例代码
Feb 06 Javascript
微信小程序实现横向增长表格的方法
Jul 24 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
Oct 30 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
May 09 Javascript
vue2配置scss的方法步骤
Jun 06 Javascript
Vue实现购物车详情页面的方法
Aug 20 Javascript
vue实现element表格里表头信息提示功能(推荐)
Nov 20 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.NET的入门教程
2006/10/09 PHP
URL Rewrite的设置方法
2007/01/02 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
javascript object array方法使用详解
2012/12/03 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
vscode调试node.js的实现方法
2020/03/22 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
简单理解Python中基于生成器的状态机
2015/04/13 Python
Python实现监控程序执行时间并将其写入日志的方法
2015/06/30 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
iPython pylab模式启动方式
2020/04/24 Python
python爬取youtube视频的示例代码
2021/03/03 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
运动会广播稿100字
2014/01/11 职场文书
银行业务授权委托书
2014/10/10 职场文书
Redis基本数据类型String常用操作命令
2022/06/01 Redis