实用前端JS工具类(验证,AJAX请求封装,分页插件等)真实项目使用

这篇博客分享了几个实用的前端JavaScript工具类,包括手机号码和电话号码验证、邮箱地址验证、身份证号码验证,以及Date对象的扩展,提供了格式化日期的方法。此外,还封装了AJAX请求函数和分页插件,适用于真实项目的开发需求。
摘要由CSDN通过智能技术生成
/**
 * 验证手机号码 <br/>
 * @param mobile
 * @returns {Boolean}
 */
function validateMobile(mobile){
	if(!mobile || mobile == ""){
		return false;
	}
	var validate = false;
	 var reg =/^((\+?86)|(\(\+86\)))?(13[0123456789][0-9]{8}|15[012356789][0-9]{8}|170[0125789][0-9]{7}|17[678][0-9]{8}|18[012356789][0-9]{8}|147[0-9]{8}|1349[0-9]{7})$/;
	 if (reg.test(mobile)) {
		 validate = true;
	 }else{
		 validate = false;
	 };
	 return validate;
}

/**
 * 验证电话号码 <br/>
 * @param telphone
 * @returns {Boolean}
 */
function validateTel(telphone){
	if(!telphone || telphone == ""){
		return false;
	}
	var validate = false;
	 var reg =/^(0[0-9]{2,3})?(-)?[0-9]{7,8}$/;
	 if (reg.test(telphone)) {
		 validate = true;
	 }else{
		 validate = false;
	 };
	 return validate;
}

/**
 * 验证邮箱地址
 * @param email
 * @returns {Boolean}
 */
function validateEmail(email){
	if(!email || email == ""){
		return false;
	}
	var pattern = /^([\.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; 
	if (!pattern.test(email)) {  
        return false;  
    }else{
    	return true;
    }
}
/**
 * 验证15位或18位身份证号码
 * @param idCard
 * @returns {Boolean}
 */
function validateIdCard(idCard) {
	//15位和18位身份证号码的正则表达式
	var regIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
	//如果通过该验证,说明身份证格式正确,但准确性还需计算
	if (regIdCard.test(idCard)) {
		if (idCard.length == 18) {
			var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9,10, 5, 8, 4, 2); //将前17位加权因子保存在数组里
			var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2); //这是除以11后,可能产生的11位余数、验证码,也保存成数组
			var idCardWiSum = 0; //用来保存前17位各自乖以加权因子后的总和
			for (var i = 0; i < 17; i++) {
				idCardWiSum += idCard.substring(i, i + 1) * idCardWi[i];
			}
			var idCardMod = idCardWiSum % 11;//计算出校验码所在数组的位置
			var idCardLast = idCard.substring(17);//得到最后一位身份证号码
			//如果等于2,则说明校验码是10,身份证号码最后一位应该是X
			if (idCardMod == 2) {
				if (!(idCardLast == "X" || idCardLast == "x")) {
					return false;
				}
			} else {
				//用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
				if (!(idCardLast == idCardY[idCardMod])) {
					return false;
				}
			}
		}
	} else {
		return false;
	}
	return true;
}


//扩展Date的format方法 
//对Date的扩展,将 Date 转化为指定格式的String 
//月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
//年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
//例子: 
//(new Date()).Format("yyyy-MM-dd HH:mm:ss.S") ==> 2006-07-02 08:09:04.423 
//(new Date()).Format("yyyy-M-d H:m:s.S")      ==> 2006-7-2 8:9:4.18 
Date.prototype.format = function (format) {
  var o = {
      "M+": this.getMonth() + 1,
      "d+": this.getDate(),
      "h+": this.getHours(),
      "m+": this.getMinutes(),
      "s+": this.getSeconds(),
      "q+": Math.floor((this.getMonth() + 3) / 3),
      "S": this.getMilliseconds()
  }
  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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值