js数据校验工具 js

var regexEnum = {  
  intege : "^-?[1-9]\\d*$", // 整数  
  intege1 : "^[1-9]\\d*$", // 正整数  
  intege2 : "^-[1-9]\\d*$", // 负整数  
  num : "^([+-]?)\\d*\\.?\\d+$", // 数字  
  num1 : "^([+]?)\\d*$", // 正数(正整数 + 0)  
  num2 : "^-[1-9]\\d*|0$", // 负数(负整数 + 0)  
  num3 : "^([+]?)\\d*\\.?\\d+$", // 正数  
  decmal : "^([+-]?)\\d*\\.\\d+$", // 浮点数  
  decmal1 : "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$", // 正浮点数  
  decmal2 : "^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$", // 负浮点数  
  decmal3 : "^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$", // 浮点数  
  decmal4 : "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$", // 非负浮点数(正浮点数 + 0)  
  decmal5 : "^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$", // 非正浮点数(负浮点数 +  
  // 0)  
  email : "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", // 邮件  
  color : "^[a-fA-F0-9]{6}$", // 颜色  
  url : "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$", // url  
  chinese : "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$", // 仅中文  
  ascii : "^[\\x00-\\xFF]+$", // 仅ACSII字符  
  zipcode : "^\\d{6}$", // 邮编  
  mobile : "^(13|15|18|14)[0-9]{9}$", // 手机  
  ip4 : "^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$", // ip地址  
  notempty : "^\\S+$", // 非空  
  picture : "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$", // 图片  
  jpg : "(.*)\\.(jpg|gif)$", // 图片  
  rar : "(.*)\\.(rar|zip|7zip|tgz)$", // 压缩文件  
  date : "^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$", // 日期  
  qq : "^[1-9]*[1-9][0-9]*$", // QQ号码  
  tel : "^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$", // 电话号码的函数(包括验证国内区号,国际区号,分机号)  
  username : "^\\w+$", // 用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串  
  letter : "^[A-Za-z]+$", // 字母  
  letter_u : "^[A-Z]+$", // 大写字母  
  letter_l : "^[a-z]+$", // 小写字母  
  letter_num : "^\\w+$", // 匹配由数字、26个英文字母或者下划线组成的字符串  
  idcard : "/(^/d{15}$)|(^/d{17}([0-9]|X)$)/", // 身份证  
  htmlcode : "^[^\\\\'\"<>@#$&]+$", // 禁止输入html代码(特殊字符)  
  uploadFile : "(.*)\\.(jpg|bmp|gif|png|jpeg|tif|pdf|doc|docx|xls|xlsx|ppt|pptx)$", // 图片  
};  


/** 
* 校验文件扩展名 
*  
* @param str 
* @returns {Boolean} 
*/  
function checkFile(str) {  
  if (isEmpty(str)) {  
      return true;  
  }  
  var strRegex = "(.jpg|.JPG|.gif|.GIF|.png|.PNG)$"; // 用于验证图片扩展名的正则表达式  
  var re = new RegExp(strRegex);  
  if (re.test(str)) {  
      return (true);  
  } else {  
      return (false);  
  }  
}  

function checkExcelFile(str) {  
  if (isEmpty(str)) {  
      return true;  
  }  
  var strRegex = "(.xls)$";  
  var re = new RegExp(strRegex);  
  if (re.test(str)) {  
      return (true);  
  } else {  
      return (false);  
  }  
}  

/** 
* 正则校验 
*  
* @param format 
*            格式 
* @param val 
*            值 
*/  
function checkFormat(format, val) {  
  if (isEmpty(val)) {  
      if ("notempty" == format) {  
          return false;  
      }  
      return true;  
  }  
  var reg = regexEnum[format];  
  var r = val.match(reg);  
  if (r == null)  
      return false;  
  return true;  
}  
//身份证严格验证
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"} 
// 身份证验证
function isCardID(sId){ 
	var iSum=0 ;
  var info="" ;
  var sBirthday ="";
	if(!/^\d{17}(\d|x)$/i.test(sId)) return "你输入的身份证长度或格式错误"; 
	sId=sId.replace(/x$/i,"a"); 
	if(aCity[parseInt(sId.substr(0,2))]==null) return "你的身份证地区非法"; 
	sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2)); 
	var d=new Date(sBirthday.replace(/-/g,"/")) ;
	if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "身份证上的出生日期非法"; 
	for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) ;
	if(iSum%11!=1) return "你输入的身份证号非法"; 
	return true;//aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女") 
} 

// 短时间,形如 (13:04:06)  
function isTime(str) {  
  if (isEmpty(str)) {  
      return true;  
  }  
  var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);  
  if (a == null) {  
      return false;  
  }  
  if (a[1] > 24 || a[3] > 60 || a[4] > 60) {  
      return false;  
  }  
  return true;  
}  

//短时间,形如 (13:04)  
function isTimeHM(str) {  
  if (isEmpty(str)) {  
      return false;  
  }  
  var a = str.match(/^(\d{1,2})(:)?(\d{1,2})$/);  
  if (a == null) {  
      alert("hm"+a);  
      return false;  
  }  
  if (a[1] > 24 || a[3] > 60) {  
      alert("hm"+a[1]);  
      alert("hm"+a[3]);  
      return false;  
  }  
  return true;  
}  

// 短日期,形如 (2003-12-05)  
function isDate(str) {  
  if (isEmpty(str)) {  
      return true;  
  }  
  var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);  
  if (r == null)  
      return false;  
  var d = new Date(r[1], r[3] - 1, r[4]);  
  return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d  
          .getDate() == r[4]);  
}  

// 长时间,形如 (2003-12-05 13:04:06)  
function isDateTime(str) {  
  if (isEmpty(str)) {  
      return true;  
  }  
  var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;  
  var r = str.match(reg);  
  if (r == null)  
      return false;  
  var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]);  
  return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3]  
          && d.getDate() == r[4] && d.getHours() == r[5]  
          && d.getMinutes() == r[6] && d.getSeconds() == r[7]);  
}  


// 空字符串  
function isEmpty(str) {  
  if ((str == null) || (str.toString().replace(/\s+/g, "") == "")) {  
      return true;  
  } else {  
      return false;  
  }  
}  

function isNotEmpty(str) {  
  if ((str == null) || (str.toString().replace(/\s+/g, "") == "")) {  
      return false;  
  } else {  
      return true;  
  }  
}  

// 数字最值(最小值,最大值,必须输入)  
function isNumRange(str, minNum, maxNum) {  
  if (isEmpty(str)) {  
      return true;  
  }  
  var num = parseFloat(str);  
  if (!isEmpty(minNum) && num < minNum) {  
      return false;  
  } else if (!isEmpty(maxNum) && num > maxNum) {  
      return false;  
  } else {  
      return true;  
  }  
}  

// 字符串最大长度  
function isMaxLength(str, maxLength) {  
  if (isEmpty(str)) {  
      return true;  
  }  
  var len = str.length;  
  if (len > maxLength) {  
      return false;  
  } else {  
      return true;  
  }  
}  

// 字符串最小长度  
function isMinLength(str, minLength) {  
  if (isEmpty(str)) {  
      return true;  
  }  
  var len = str.length;  
  if (len < minLength) {  
      return false;  
  } else {  
      return true;  
  }  
}  

// 小数精确度(maxL:整数部分长度,maxF:小数部分长度)  
function isMaxLengthForDouble(str, maxL, maxF) {  
  if (isEmpty(str)) {  
      return true;  
  }  
  var vals = str.split(".");  

  if ((vals[0].length > maxL) || (vals[1].length > maxF)) {  
      return false;  
  } else {  
      return true;  
  }  
}  

// 字符串固定长度  
function isLength(str, length) {  
  if (isEmpty(str)) {  
      return true;  
  }  
  var len = str.length;  
  if (len != length) {  
      return false;  
  } else {  
      return true;  
  }  
}  

// 失去焦点时do  
// obj校验(jquery)对象,objSpan提示对象, fun执行函数  
function onBlurShow(obj, fun) {  
  obj.blur(fun);  
}  


// 时间格式转化 date转化成String 方法date.format("时间格式")  
Date.prototype.format = function(format) {  
  var o = {  
      "M+" : this.getMonth() + 1, // month  
      "d+" : this.getDate(), // day  
      "h+" : this.getHours(), // hour  
      "m+" : this.getMinutes(), // minute  
      "s+" : this.getSeconds(), // second  
      "q+" : Math.floor((this.getMonth() + 3) / 3), // quarter  
      "S" : this.getMilliseconds()  
  // millisecond  
  };  
  if (/(y+)/.test(format))  
      format = format.replace(RegExp.$1, (this.getFullYear() + "")  
              .substr(4 - RegExp.$1.length));  
  for ( var k in o)  
      if (new RegExp("(" + k + ")").test(format))  
          format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]  
                  : ("00" + o[k]).substr(("" + o[k]).length));  
  return format;  
};  

// 最小日期  
function isMinDate(date, minDate) {  
  if (isEmpty(date)) {  
      return true;  
  }  
  var r1 = date.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);  
  var d1 = new Date(r1[1], r1[3] - 1, r1[4]);  
  var d2 = new Date();  
  d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());  
  if (minDate != "now") {  
      var r2 = minDate.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);  
      d2 = new Date(r2[1], r2[3] - 1, r2[4]);  
  }  

  var t1 = d1.getTime();  
  var t2 = d2.getTime();  

  if (t1 < t2) {  
      return false;  
  } else {  
      return true;  
  }  

}  

// 最大日期  
function isMaxDate(date, maxDate) {  
  if (isEmpty(date)) {  
      return true;  
  }  
  var r1 = date.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);  
  var d1 = new Date(r1[1], r1[3] - 1, r1[4]);  
  var d2 = new Date();  
  d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());  
  if (maxDate != "now") {  
      var r2 = maxDate.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);  
      d2 = new Date(r2[1], r2[3] - 1, r2[4]);  
  }  

  var t1 = d1.getTime();  
  var t2 = d2.getTime();  

  if (t1 > t2) {  
      return false;  
  } else {  
      return true;  
  }  

}  

// 字符串截取  
function spliceStr(str) {  
  if (!isEmpty(str)) {  
      if (str.length > 5) {  
          str = str.substr(0, 5) + "..";  
          return str;  
      }  
  } else {  
      return "";  
  }  
}  

/** 
* 判断数组是否有重复元素 
*  
* @param elementArray 
* @returns {Boolean} 
*/  
function isDuplicate(elementArray) {  
  var nary = elementArray.sort();  
  for ( var i = 0; i < nary.length; i++) {  
      if (nary[i] == nary[i + 1]) {  
          return true;  
      }  
  }  
  return false;  
}  

/** 
* 去掉字符串左边空格 
*  
* @param str 
* @returns 
*/  
function ltrim(str) {  
  var pattern = new RegExp("^[\\s]+", "gi");  
  return str.replace(pattern, "");  
}  

/** 
* 去掉字符串右边空格 
*  
* @param str 
* @returns 
*/  
function rtrim(str) {  
  var pattern = new RegExp("[\\s]+$", "gi");  
  return str.replace(pattern, "");  
}  

/** 
* 去掉字符串左右空格 
*  
* @param str 
* @returns 
*/  
function trim(str) {  
  return rtrim(ltrim(str));  
}  


// 开始时间 - 结束时间 yyyy-mm-dd  
function check(startTime, endTime) {  
  if (startTime.length > 0 && endTime.length > 0) {  
      var startTmp = startTime.split("-");  
      var endTmp = endTime.split("-");  
      var sd = new Date(startTmp[0], startTmp[1], startTmp[2]);  
      var ed = new Date(endTmp[0], endTmp[1], endTmp[2]);  
      if (sd.getTime() > ed.getTime()) {  
          return false;  
      }  
  }  
  return true;  
}  

// 格式 yyyy-MM  
function checkTime(startTime, endTime) {  

  if (startTime.length > 0 && endTime.length > 0) {  
      startTime = startTime + "/01";  
      endTime = endTime + "/01";  
      var startTimeTmp = startTime.replace(/-/g, "/");  
      var endTimeTmp = endTime.replace(/-/g, "/");  
      var d1 = new Date(Date.parse(startTimeTmp));  
      var d2 = new Date(Date.parse(endTimeTmp));  
      if (d1 > d2) {  
          return false;  
      }  
  }  
  return true;  
}  

// 格式 HH:mm:ss  
function compareTime(interviewDate, startTime, endTime) {  
  var startDate = interviewDate + " " + startTime;  
  var endDate = interviewDate + " " + endTime;  
  if (startDate.length > 0 && endDate.length > 0) {  
        
      var startDateTemp = startDate.split(" ");  
      var endDateTemp = endDate.split(" ");  
      var arrStartDate = startDateTemp[0].split("-");  
      var arrEndDate = endDateTemp[0].split("-");  
      var arrStartTime = startDateTemp[1].split(":");  
      var arrEndTime = endDateTemp[1].split(":");  
      var allStartDate = new Date(arrStartDate[0], arrStartDate[1],arrStartDate[2], arrStartTime[0], arrStartTime[1],arrStartTime[2]);  
      var allEndDate = new Date(arrEndDate[0], arrEndDate[1], arrEndDate[2],arrEndTime[0], arrEndTime[1], arrEndTime[2]);  

      if (allStartDate.getTime() >= allEndDate.getTime()) {  
          return false;  
      } else {  
          return true;  
      }  
  } else {  
      alert("时间不能为空");  
      return false;  
  }  
}  

function CurentTime() {  
  var now = new Date();  
  var year = now.getFullYear(); // 年  
  var month = now.getMonth() + 1; // 月  
  var day = now.getDate(); // 日  
  var hh = now.getHours(); // 时  
  var mm = now.getMinutes(); // 分  
  var clock = year + "-";  
  if (month < 10)  
      clock += "0";  
  clock += month + "-";  
  if (day < 10)  
      clock += "0";  
  clock += day + " ";  
  if (hh < 10)  
      clock += "0";  
  clock += hh + ":";  
  if (mm < 10)  
      clock += '0';  
  clock += mm;  
  return (clock);  
}  

function CurentYearMonth() {  
  var now = new Date();  
  var year = now.getFullYear(); // 年  
  var month = now.getMonth() + 1; // 月  
  var clock = year + "-";  
  if (month < 10)  
      clock += "0";  
  clock += month;  
  return (clock);  
}  

// 是否在数组内  
function in_array(needle, haystack) {  
  if (typeof needle == 'string' || typeof needle == 'number') {  
      for ( var i in haystack) {  
          if (haystack[i] == needle) {  
              return true;  
          }  
      }  
  }  
  return false;  
}  


/** 
* 去掉字符串最后一个逗号 
* @param str 
* @returns 
*/  
function delComma(str)  
{  
  if(str.charAt(str.length-1) == ",")  
  {  
      str = str.substring(0, str.length-1);  
  }  
  return str;  
}  

/** 
* 比较开始时间和结束时间 
* @param currDate 
* @param inputDate 
* @returns {Boolean} 
*/  
function judegeDate(currDate,inputDate){  
    
  if(currDate.length>0 && inputDate.length>0){       
      var startTmp=currDate.split("-");    
      var endTmp=inputDate.split("-");    
      var sd=new Date(startTmp[0],startTmp[1],startTmp[2]);    
      var ed=new Date(endTmp[0],endTmp[1],endTmp[2]);    
      if(sd.getTime() > ed.getTime()){     
          return false;       
      }       
  }       
  return true;       
}  

/** 
* 日期校验正则表达式 
* @param str 
* @returns {Boolean} 
*/  
function isdate(str){  
  var reg = /^((((((0[48])|([13579][26])|([2468][048]))00)|([0-9][0-9]((0[48])|([13579][26])|([2468][048]))))-02-29)|(((000[1-9])|(00[1-9][0-9])|(0[1-9][0-9][0-9])|([1-9][0-9][0-9][0-9]))-((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30))|(((0[1-9])|(1[0-2]))-((0[1-9])|(1[0-9])|(2[0-8]))))))$/i;  
  if (reg.test(str)) return true;  
  return false;  
}  

/** 
* 格式化日期 
* @param value 
* @returns {String} 
*/  
function formatDate(value){  
  var d = new Date(value);  
  var mon = d.getMonth() + 1;  
  var day = d.getDate();  
  var hours = d.getHours();  
  var minute = d.getMinutes();  
  var second = d.getSeconds();  
  return d.getFullYear() + "-" + (mon >= 10 ? mon : "0" + mon) + "-" + (day >= 10 ? day : "0" + day) + " " + (hours >= 10 ? hours : "0" + hours) + ":" + (minute >= 10 ? minute : "0" + minute) + ":" + (second >= 10 ? second : "0" + second);  
}  

function checkSearchDateTimeBox(strBeginId,strEndId){  
     var beginvalue = $('#' + strBeginId).datetimebox('getValue');  
     var endvalue   = $('#' + strEndId).datetimebox('getValue');  
     if (endvalue != '' &&  beginvalue!=''){  
         return (endvalue >= beginvalue);  
     }  
     return true;  
}
module.exports = {
  isCardID
}

导出要使用的方法

再引入(你命的名)

 使用方法

 括号是你传的值 返回的是校验结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栈狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值