常用表单验证&&常用正则

表单验证&&常用正则


;(function(ELF){
	ELF = ELF || (window.ELF = {});
	var reg = {},
	pattern = {
		/*用户名校验*/
		'userName' : '^[a-zA-Z0-9_-]{4,16}$',
		/*姓名校验*/
		'name' : '^[A-Za-z\.\u4e00-\u9fa5]+$',
		/*手机号校验*/
		'MPhone' : '^1[34578]\\d{9}$',
		/*邮编校验*/
		'zipCode' : '^\\d{6}$',
		/*邮箱校验*/
		'mail' : '^([A-Za-z0-9_\\-\\.])+@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$',
		/*身份证简单校验 15位或者18位*/
		'IDCode' : '^(([0-9]{14})|([0-9]{17}))[0-9X]$'	
	};
	ELF.pattern = pattern;
	ELF.reg = reg;
	
	//验证用户名:数字、字母、- {4-16}
	reg.testUserName = function(arg){
		arg = arg || '';
		if(typeof arg !== "string") {
			throw new TypeError('"arg" is not string');
		}		
		return /^[a-zA-Z0-9_-]{4,16}$/.test(arg);
	}
	
	//验证姓名: 字母或者中文
	reg.testName = function( arg ){		
		arg = arg || '';	
		if(typeof arg !== "string") {
			throw new TypeError('"arg" is not string');
		}			
		return /^[A-Za-z\.\u4e00-\u9fa5]+$/.test( arg );
	}	
	
	//验证手机 :1 [3、4、5、7、8] 11位数字
	reg.testMPhone = function ( arg ){
		arg = arg || '';		
		if(typeof arg !== "string") {
			throw new TypeError('"arg" is not string');
		}			
		return /^1[34578]\d{9}$/.test( arg );
	}	
	
	//验证邮编 : 6位数字
	reg.testZipCode = function(arg){
		arg = arg || '';	
		if(typeof arg !== "string") {
			throw new TypeError('"arg" is not string');
		}			
		return /^\d{6}$/.test( arg );
	}
	
	//验证邮箱: [数字、字母、_、- ]@[数字、字母、_、- 、.].[字母{2-4}]
	reg.testMail = function(arg){
		arg = arg || '';	
		if(typeof arg !== "string") {
			throw new TypeError('"arg" is not string');
		}			
		return /^([A-Za-z0-9_\-\.])+@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(arg);
	}
		
	//匹配身份证:严格匹配
	reg.testIDCode = function( sId ) { 
		
		sId = sId || '';	
		if(typeof sId !== "string") {
			throw new TypeError('"sId" is not string');
		}	
		
		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:"国外"} 				
		var iSum = 0;
		var info = "";
		var pass = true;
		if(!/^\d{17}(\d|x)$/i.test(sId)){
			info = "你输入的身份证长度或格式错误";
			console.log( info ); 
			return false;
		}
		sId = sId.replace(/x$/i, "a");
		if(aCity[parseInt(sId.substr(0, 2))] == null){
			info = "你的身份证地区非法";
			console.log( info ); 
			return false;		
			
		} 
		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())){
			info = "身份证上的出生日期非法";
			console.log( info ); 
			return false;				
		}
		for(var i = 17; i >= 0; i--){
			iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);				
		} 
		if(iSum % 11 != 1){
			info = "你输入的身份证号非法";
			console.log( info ); 
			return false;				
		}
		console.log(info);
		//aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女");//此次还可以判断出输入的身份证号的人性别
		return pass;	
	}
	
	
})();

posted @ 2017-10-19 18:06  若水若鱼  阅读(329)  评论(0编辑  收藏  举报