jQuery扩展的校验方法

function AppValidate() {
	this.isEmail = function(str) {
		if (str) {
			var reg = /^([a-z0-9A-Z]+[-|\._]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,20}$/;
			return reg.test(str);
		}
		return true;
	};
	this.isDate = function(str) {
		if (str) {
			var reg = /^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$/;
			return reg.test(str);
		}
		return true;
	};
	this.isNumber = function(str) {
		if (str) {
			var reg = /^[0-9]\d*$/;
			return reg.test(str);
		}
		return true;
	}
	this.isDoubleNumber = function(str) {
		if ($.Validate.isNumber(str)) {
			return true;
		} else {

			var reg = /\d+.\d+/;// /^([0-9]{1,})[\.](\d{1;2})$/;
			var r = reg.test(str);
			return r;
		}
	};
	this.isPostCode = function(str) {
		if (str) {
			var reg = /\d{6}$/;
			return reg.test(str);
		}
		return true;
	};
	
	// 固话或手机校验
	this.isPhone = function(str) {
		if (str) {
			var reg = /^((13[0-9])|(15[^4,\D])|(18[0-9]))\d{8}$|^((\d{7,8})|(\d{4}|\d{3})(-)?(\d{7,8})|(\d{4}|\d{3})(-)?(\d{7,8})(-)?(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})(-)?(\d{4}|\d{3}|\d{2}|\d{1}))$/;
			return reg.test(str);
		}
		return true;
	};
	// 手机校验
	this.isMobile = function(str) { // add by ronizhang 11.8.30
		if (str) {
			var reg = /^((13[0-9])|(15[0-9])|(18[0-9]))\d{8}$/;
			return reg.test(str);
		}
		return true;
	};
	// 固话校验
	this.isFixPhone = function(str) { // add by ronizhang 11.8.30
		if (str) {
			var reg = /^((\d{7,8})|(\d{4}|\d{3})(-)?(\d{7,8})|(\d{4}|\d{3})(-)?(\d{7,8})(-)?(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})(-)?(\d{4}|\d{3}|\d{2}|\d{1}))$/;
			return reg.test(str);
		}
		return true;
	};
	// 传真校验
	this.isFax = function(str) {
		if (str) {
			var reg = /^((\d{7,8})|(\d{4}|\d{3})(-)?(\d{7,8})|(\d{4}|\d{3})(-)?(\d{7,8})(-)?(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})(-)?(\d{4}|\d{3}|\d{2}|\d{1}))$/;
			return reg.test(str);
		}
		return true;
	};
	// 银行账号
	this.isBankAccount = function(str) {
		if (str) {
			var reg = /^\d{16,30}$/;
			return reg.test(str);
		}
		return true;
	};
	// 身份证
	this.isIdCard = function(str) {
		if (str) {

			str = str.toUpperCase();
			// alert(str);
			// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
			// if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)))

			return (/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(str));
		}
		return true;
	};
	// 网站地址校验
	this.isDomain2 = function(str) {
		if (str) {
			var regStr = "^((https|http|ftp|rtsp|mms)+://)"
					+ "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" // ftp的user@
					+ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL-
					// 199.194.52.184
					+ "|" // 允许IP和DOMAIN(域名)
					+ "([0-9a-z_!~*'()-]+\.)*" // 域名- www.
					+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名
					+ "[a-z]{2,6})" // first level domain- .com or
					// .museum
					+ "(:[0-9]{1,4})?" // 端口- :80
					+ "((/?)|" // a slash isn't required if there is no
					// file name
					+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
			var reg = new RegExp(regStr);
			return reg.test(str);
		}
		// return true;
	};
	// 网站地址校验广告组专用
	this.isDomain = function(str) {
		if (str) {
			var regStr = "^((https|http|ftp|rtsp|mms)+://)[^\\s]";
			var reg = new RegExp(regStr);
			var result = reg.test(str);

			return result;
		}
	};
	this.isDoNet = function(str) {
		if (str) {
			var reg = /^(http(s)?:\/\/)?(www\.)?[\w-]+\.\w{2,4}(\/)?$/;

			return reg.test(str);
		}
		return true;
	};
	this.isChecked = function(obj) {
		if (obj) {
			var tag = false;
			obj.each(function() {
				if ($(this).attr("checked")) {
					tag = true;
				}
			});
			return tag;
		}
		return true;
	};
	
	// 不允许包含符号
    this.isExcludeDenotationParentheses = function(str) {
        if (str) {
            var reg = /^[a-zA-Z0-9_\u4e00-\u9fa5()()]{1,50}$/;
            return reg.test(str);
        }
        return true;
    };
	
	// 不允许包含符号
	this.isExcludeDenotation = function(str) {
		if (str) {
			var reg = /^[a-zA-Z0-9_\u4e00-\u9fa5]{1,50}$/;
			return reg.test(str);
		}
		return true;
	};
	
	this.isUserName = function(str) {
		if (str) {
			var reg = /^[a-zA-Z0-9_\u4e00-\u9fa5]{2,16}$/;
			return reg.test(str);
		}
		return true;
	};
	
	this.isBankArea = function(str) {
		if (str) {
			var reg = /^[a-zA-Z0-9_\u4e00-\u9fa5]{2,30}$/;
			return reg.test(str);
		}
		return true;
	};
	
	// 银行名称
	this.isBankName = function(str) {
		if (str) {
			var reg = /^[a-zA-Z\u4e00-\u9fa5]{2,16}$/;
			return reg.test(str);
		}
		return true;
	};
	
	
	this.isPassword = function(str) {
		if (str) {
			var reg = /^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]{6,20}$/;
			return reg.test(str);
		}
		return true;
	};

	this.isPasswordnew = function(str) {
		var pattern1 = /^[a-zA-Z]$/;
		var pattern2 = /^[0-9]$/;
		// var pattern3 = /^[^0-9a-zA-Z]$/;
		var isnum = false;
		var ischar = false;
		// var isext = false;

		if (str) {
			if (str.length < 6 || str.length > 16) {
				return false;
			}
			for ( var j = 0; j < str.length; j++) {
				var rs = str.substr(j, 1);
				if (pattern1.test(rs)) {
					ischar = true;
				}
				if (pattern2.test(rs)) {
					isnum = true;
				}
				// if(pattern3.test(rs))
				// {
				// isext=true;
				// }
			}
			if (ischar && isnum) {
				return true;
			} else {
				return false;
			}
		}
		return true;
	};
	// 是否只包含字母数字下划线中文空格
	this.isCommonName = function(str) {
		if (str) {
			var reg = /^[a-zA-Z0-9_\u4e00-\u9fa5\s]+$/;
			return reg.test(str);
		}
		return true;
	};
	
	// 是否只包含字母数字中划线(存储名称校验)
	this.isHiSpaceName = function(str) {
		if (str) {
			var reg = /^[a-zA-Z]{1}[a-zA-Z0-9-\s]+$/;
			return reg.test(str);
		}
		return true;
	};
	
	this.isTitle = function(s) {
		var pattern = new RegExp(
				"[`~!@#$^&*=|{}':;',\\[\\].<>/?~!@#¥……&*——|{}【】‘;:'。,、?]");
		var rs = "";
		for ( var i = 0; i < s.length; i++) {
			rs = rs + s.substr(i, 1).replace(pattern, '');
		}
		if ("" == rs) {
			return false;
		} else if (s.length != rs.length) {
			return false;
		}
		return true;
	};
	
	/**
	 * author liguangyang description 判断字符串是否包含特殊字符、标点符号
	 * 
	 * @param s:传入的字符串
	 */
	this.stripscriptAll = function(s) {
		var pattern = new RegExp(
				"[`~!@#$^&*()=|{}':;'\",\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]");
		var rs = "";
		for ( var i = 0; i < s.length; i++) {
			rs = rs + s.substr(i, 1).replace(pattern, '');
		}
		if ("" == rs) {
			return false;
		} else if (s.length != rs.length) {
			return false;
		}
		return true;
	};
	this.containJsScript = function(str) {
		var retVal = true;
		if (str) {
			var reg = /^([\s\S]*)((<script(\s)*>)|(<\/script>)|(<script(\s)+([\s\S]*)[^>]>))([\s\S]*)$/;
			retVal = reg.test(str);

		}
		return retVal;
	};
	// 是否包含json特殊字符
	this.containJsonChar = function(str) {
		var retVal = false;
		if (str) {
			var reg = /^.*[&<>\"\':\[\]\{\}]+.*$/;
			retVal = reg.test(str);
		}
		return retVal;
	};
    /*
     * 检查字符串长度 l00192963
     *
     */
    this.lengthCheck = function(str,up,down){
        // console.log(str);
        var minl = down || 0;
        var maxl = up || 0;
        if ((str.length>=minl) && (str.length<=maxl)) {
            return true;
        }
        else {
            return false;
        }
    }
    /*
     * 检查url合法性 l00192963
     *
     */
    this.isURL = function(str){
        //console.log("charge:#",str,"#");
        if (str.length == 0) return false;
        var myReg = "^((https|http|ftp|rtsp|mms)://)?[a-z0-9A-Z]{3}\.[a-z0-9A-Z][a-z0-9A-Z]{0,61}?[a-z0-9A-Z]\.com|net|cn|cc (:s[0-9]{1-4})?/$";
        var tempReg = new RegExp(myReg);
        if (tempReg.test(str) == false) {
            return false;
        } else {
          return true;
        }
    }
    
    // 检查密码,6~32个字符,包括字母、数字、符号(!@#$%^&*.~)
    // q00131198
	this.isPasswordOpen = function(str) {
		if (str) {
			var reg = /^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]{6,32}$/;
			return reg.test(str);
		}
		return true;
	};
	
	// 手机号校验
    // q00131198
	this.isMobileOpen = function(str) {
		if (str) {
			var reg1 = /^((0086)|(\+86))?((13[0-9])|(15[0-9])|(18[0-9]))\d{8}$/;
			var reg2 = /^((00)|(\+))\d+$/;
			return reg1.test(str) || reg2.test(str);
		}
		return true;
	};
	
	// 网址检验,形如http://www.baidu.com
    // q00131198
	this.isUrlOpen = function(str) {
		if (str) {
			var reg = /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/;
			return reg.test(str);
		}
		return true;
	};
	
	// 校验短信验证码
	this.isPhoneVerCode = function(str) {
		if (str) {
			return (/^[a-z0-9A-Z]+$/.test(str));
		}
		return false;
	};
	
	// 检查应用包名是否合法。只能包含大小写字母,数字,点及下划线,长度小于200
	this.isPgkName = function(str) {
		if(!str){
		 	return false;
		}
		if (str) {
			var reg = /^[A-Za-z0-9\_\.]{1,200}$/;
			return reg.test(str);
		}
		return true;
	};
	
	// 检查IMEI号,只包含大小写字母,数字,长度小于等于15
	this.isIMEI = function(str) {
		if(!str){
		 	return false;
		}
		if (str) {
			var reg = /^[A-Za-z0-9]{1,15}$/;
			return reg.test(str);
		}
		return true;
	};
}

$.extend({
	// 扩展Jquery,增加校验方法
	AppValidate : new AppValidate()
});

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值