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 相关文章推荐
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
Dec 10 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
Nov 16 Javascript
jQuery中after()方法用法实例
Dec 25 Javascript
使用Bootstrap打造特色进度条效果
May 02 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
Jun 20 Javascript
Vue.js用法详解
Nov 13 Javascript
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
Mar 28 Javascript
小程序实现新用户判断并跳转激活的方法
May 20 Javascript
JS使用H5实现图片预览功能
Sep 30 Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 Javascript
JavaScript实现网页留言板功能
Nov 23 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
在Windows版的PHP中使用ADO
2006/10/09 PHP
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
PHP实现的sqlite数据库连接类
2014/12/12 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
实用自动化运维Python脚本分享
2018/06/04 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
python操作redis数据库的三种方法
2020/09/10 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
毕业生自荐书
2014/02/02 职场文书
节约粮食标语
2014/06/18 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
给客户的感谢信
2015/01/21 职场文书
学校节水倡议书
2015/04/29 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL