//字符串检查
jQuery.validator.addMethod("stringCheck", function(value, element) {       
	//if(value.length>0 && value[0]==' ')return false;
	value = value.replace(/\s/g,"");
	value=value.replace("’","");
	value=value.replace("'","");
	return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);       
 }, "只能包括中文字、英文字母、数字、空格、下划线");   
 
//字符串检查
jQuery.validator.addMethod("stringCheck2", function(value, element) {       
	return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);       
 }, "只能包括中文字、英文字母、数字和下划线");   
   

jQuery.validator.addMethod("stringCheck3", function(value, element) {       
	value = value.replace(/\s/g,"");
	value = value.replace(/,/g,"");
	value = value.replace(/-/g,"");
	value = value.replace(/&/g,"");
	if(value=='')return true;
	return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);       
 }, "只能包括中文字、英文字母、数字、空格、下划线、逗号、中划线及&");    
   

 // 中文字两个字节       
 jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {       
     var length = value.length;       
     for(var i = 0; i < value.length; i++){       
         if(value.charCodeAt(i) > 127){       
         length++;       
         }       
     }       
     return this.optional(element) || ( length >= param[0] && length <= param[1] );       
 }, "请确保输入的值在3-15个字节之间(一个中文字算2个字节)");   
   
 // 身份证号码验证       
 jQuery.validator.addMethod("isIdCardNo", function(value, element) {
	 value = trim(value);
	 element.value = value;
     return this.optional(element) || checkidcard(value);       
 }, "请正确输入您的身份证号码");    
      
 // 中国手机号码验证       
 jQuery.validator.addMethod("isMobile", function(value, element) {
	 value = trim(value);
	 element.value = value;
     var length = value.length;   
     var mobile = /^1[3-9]\d{9}$/;   
     return this.optional(element) || mobile.test(value);       
 }, "请正确填写您的手机号码,格式应为13*********");       

 //国际-手机号码验证  
 jQuery.validator.addMethod("isMobile2", function(value, element) {
	 value = trim(value);
	 value = value.replace(/\s+/g,'-');
	 while(value.indexOf('--')>=0)value = value.replace('--','-');
	 element.value = value;
     var length = value.length;   
     var mobile = /^([\+]?)([0-9]{1,4})+(\-[0-9]{6,16})$/;  
     //var mobile2 = /^([\+]?)([0-9]{1,4})+(\-[0-9]{2,6})+(\-[0-9]{4,12})$/;
     return this.optional(element) || mobile.test(value);       
 }, "请正确填写您的手机号码,例如：+86-15765432145");
 
 jQuery.validator.addMethod("isPhoneCountryCode", function(value, element) {
	 value = trim(value);
	 element.value = value;
     var length = value.length;   
     var mobile = /^([\+]?)([0-9]{1,4})$/;  
     return this.optional(element) || mobile.test(value);       
 }, "请正确填写国际电话区号");
 
 jQuery.validator.addMethod("isMobile3", function(value, element) {
	 value = trim(value);
	 value = value.replace(/\s+/g,'');
	 value = value.replace(/\-/g,'');

	 element.value = value;
     var length = value.length;   
     var mobile = /^([0-9]{6,16})$/;  
     //var mobile2 = /^(\-[0-9]{2,6})+(\-[0-9]{4,12})$/;
     return this.optional(element) || mobile.test(value);       
 }, "请正确填写您的手机号码,例如：15765432145");
 
 
 
 // 固定电话号码验证       
 jQuery.validator.addMethod("isTel", function(value, element) {
	 value = trim(value);
	 value = value.replace(/\s+/g,'-');
	 while(value.indexOf('--')>=0)value = value.replace('--','-');
	 element.value = value;
     //var tel = /^\d{3,4}-?\d{7,9}$/;    //电话号码格式010-12345678   
	 var tel = /^(0[0-9]{2,3}\-)([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/     
     return this.optional(element) || (tel.test(value));       
 }, "请正确填写您的电话号码,格式应为区号-电话(-分机号)");   
  
//国际-固定电话号码验证       
 jQuery.validator.addMethod("isTel2", function(value, element) {
	 value = trim(value);
	 value = value.replace(/\s+/g,'-');
	 while(value.indexOf('--')>=0)value = value.replace('--','-');
	 
	 element.value = value;
     //var tel = /^\d{3,4}-?\d{7,9}$/;    //电话号码格式010-12345678   
	 var tel = /^([\+]?)([0-9]{1,4})+(\-[0-9]{1,8})+(\-[0-9]{2,15})$/;
	 var tel2 = /^([\+]?)([0-9]{1,4})+(\-[0-9]{1,8})+(\-[0-9]{2,15})+(\-[0-9]{1,8})$/;
     return this.optional(element) || tel.test(value) || tel2.test(value);       
 }, "请正确填写您的电话号码,格式应为国家代码-区号-电话(-分机号)");
 jQuery.validator.addMethod("isTel3", function(value, element) {
	 value = trim(value);
	 value = value.replace(/\s+/g,'-');
	 while(value.indexOf('--')>=0)value = value.replace('--','-');
	 element.value = value;
     //var tel = /^\d{3,4}-?\d{7,9}$/;    //电话号码格式010-12345678   
	 var tel = /^([0-9]{1,8})+(\-[0-9]{2,15})$/;
	 var tel2 = /^([0-9]{1,8})+(\-[0-9]{2,15})+(\-[0-9]{1,8})$/;
     return this.optional(element) || tel.test(value) || tel2.test(value);       
 }, "请正确填写您的电话号码,格式应为区号-电话(-分机号)");
 
 // 联系电话(手机/电话皆可)验证   
 jQuery.validator.addMethod("isPhone", function(value,element) {
	 value = trim(value);
	 value = value.replace(/\s+/g,'-');
	 while(value.indexOf('--')>=0)value = value.replace('--','-');
	 element.value = value;
     var length = value.length;   
     var mobile = /^0?[1][3-9][0-9]{9}$/;   
     var tel = /^(0[0-9]{2,3}\-)([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/;   
     return this.optional(element) || (tel.test(value) || mobile.test(value));   
 }, "请正确填写您的联系电话");  
 
 //国际联系电话
 jQuery.validator.addMethod("isPhone2", function(value,element) {
	 value = trim(value);
	 value = value.replace(/\s+/g,'-');
	 while(value.indexOf('--')>=0)value = value.replace('--','-');
	 var numLen = (value.replace(/[^0-9]/ig,"")).length;
	 if(numLen<6 || numLen>25 || value.length>30)return false;
	 
	 element.value = value;
     //var mobile = /^([\+]?)([0-9]{1,4})+([\-0-9]{4,16})+([0-9]{1,4})$/;
     var mobile = /^([\+\(]{0,2})+([0-9]{1,4})+([\)]?)+([\-0-9\(\)]{4,20})$/;
     return this.optional(element) || mobile.test(value);   
 }, "请正确填写您的联系电话"); 
 
 
//传真号码验证 ：可以“+”开头，除数字外，可含有“-”      
 jQuery.validator.addMethod("isFax", function(value, element) {
	 value = trim(value);
	 element.value = value;
     var pattern =/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;    
     return this.optional(element) || (pattern.test(value));       
 }, "请正确填写您的传真号码");   
        
 // 邮政编码验证       
 jQuery.validator.addMethod("isZipCode", function(value, element) {
	 value = trim(value);
	 element.value = value;
     var tel = /^[0-9]{6}$/;       
     return this.optional(element) || (tel.test(value));       
 }, "请正确填写您的邮政编码"); 
//电子邮箱验证
 jQuery.validator.addMethod("isEmail", function(value, element) {
	 value = trim(value);
	 element.value = value;
     var tel = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
     return this.optional(element) || (tel.test(value));       
 }, "请正确填写您的电子邮箱"); 
 
//正整数验证，区别于digits，digits包括0
 jQuery.validator.addMethod("positiveInteger", function(value, element) {
	 value = trim(value);
	 element.value = value;
	 return this.optional(element) || /^[0-9]*[1-9][0-9]*$/.test(value);     
 }, "只能输入正整数"); 
 
//非负整数验证
 jQuery.validator.addMethod("positiveInteger2", function(value, element) {
	 value = trim(value);
	 element.value = value;
	 if(value=='0')return true;
	 return this.optional(element) || /^[0-9]*[1-9][0-9]*$/.test(value);     
 }, "只能输入非负整数"); 
 
//中文姓名验证
 jQuery.validator.addMethod("chineseName", function(value, element) {
	 value = trim(value);
	 element.value = value;
	 return this.optional(element) || /[\u4E00-\u9FA5]{2,5}(?:·[\u4E00-\u9FA5]{2,5})*/.test(value);     
 }, "请输入中文姓名"); 
 
//英文姓名验证
 jQuery.validator.addMethod("englishName", function(value, element) {
	 value = trim(value);
	 element.value = value;
	 return this.optional(element) || /^[a-zA-Z]{2,5}(?:·[a-zA-Z]{2,5})*/.test(value);     
 }, "请输入英文名"); 
 
 
//字母或数字验证
 jQuery.validator.addMethod("charNumbber", function(value, element) {
	 value = trim(value);
	 element.value = value;
	 return this.optional(element) || /^[a-zA-Z]{1}[0-9a-zA-Z]*/.test(value);     
 }, "只能包括字母或数字,并且必须以字母开头"); 
 
//字母或数字验证2
 jQuery.validator.addMethod("charOrNumbber", function(value, element) {
	 value = trim(value);
	 element.value = value;
	 var exp = /^[0-9a-zA-Z]*$/g;
	 return this.optional(element) || exp.test(value);     
 }, "只能包括字母或数字"); 
 
 //验证二级域名 
 jQuery.validator.addMethod("check2Dns", function(value, element) {
	 value = trim(value);
	 element.value = value;
	 if(value.indexOf("-")==0 || value.lastIndexOf("-")==value.length-1)return false;
	 value = value.replace(/-/g,'');
	 var exp = /^[a-zA-Z][0-9a-zA-Z]*$/g; 
	 return this.optional(element) || exp.test(value);     
 }, "只能包括字母或数字或横杠，且以字母开头"); 
 
//姓名验证，包括中英文
 jQuery.validator.addMethod("allName", function(value, element) {
	 value = trim(value);
	 element.value = value;
	 return this.optional(element) || /[\u4E00-\u9FA5]{2,5}(?:·[\u4E00-\u9FA5]{2,5})*/.test(value)||/^[a-zA-Z]{2,5}(?:·[a-zA-Z]{2,5})*/.test(value);     
 }, "请输入姓名");
 
//字符检查，适用于装载方案，重点合同号*******不包括下划线该怎么写
 jQuery.validator.addMethod("stringCheck1", function(value, element) {       
	 return this.optional(element) || /^[\u0391-\uFFE5\w\-]+$/.test(value);  
  }, "只能输入中英文、数字、中划线及下划线!");  
 
//非负数
 jQuery.validator.addMethod("nonNegativeNumber", function(value, element) {
	 return this.optional(element) || /^((0{1})|([1-9]{1}[0-9]*)|([1-9]+[0-9]*\.[0-9]+)|([0]{1}\.[0-9]+))$/.test(value);  
	 //return this.optional(element) || /^\d+(\.\d+)?$/.test(value);  
	 ///^\0{1}$/ || /^\[1-9]\d?$/ ||/^\d+\.\d+$/
  }, "只能输入非负数!");  
 
 
//正数
jQuery.validator.addMethod("positiveNumber", function(value, element) {       
	return this.optional(element) || /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/.test(value);  
	//return this.optional(element) || /^([1-9]{1}[0-9]*)|([1-9]+[0-9]*\.[0-9]+)|([0]{1}\.[0-9]+)$/.test(value);
 }, "只能输入正数!");  
//非汉字
jQuery.validator.addMethod("nonChinese", function(value, element) {
	return this.optional(element) || /^[\w!@#$%^&*()<>{},.?-_\/\\]+$/.test(value);
}, "不能输入中文!");



var checkInfoValidateUsable = true;
//用户维护信息验证  现在为只能输入英文版本
jQuery.validator.addMethod("infoValidate", function(value, element) {
	 if(!checkInfoValidateUsable)return true;
	 
	 value = trim(value);
	 element.value = value;
	 
	 var chinaZfs = "！（）【】；：，。《》？‘’“”";
	 var englishZfs = "!()[];:,.<>?''\"\"";
	 for(var i=0;i<chinaZfs.length;i++){
		 while(value.indexOf(chinaZfs[i])>=0)value=value.replace(chinaZfs[i],englishZfs[i]); 
	 }

	 
	 //element.value = value;
	 value=value.replace("’","′");
	 
	if(/^[\s\w!@#$%^&*\'\"()<>{}\[\],;:.?~、′—\-_+=\/\\℃±≥≤°㎡m³m²®×]+$/.test(value))return true;
	if(isChineseChar(value))return false;
	
	 value = element.value;
	 var chinaZfs2 = "‘’“”";
	 var englishZfs2 = "''\"\"";
	 for(var i=0;i<englishZfs2.length;i++){
		 while(value.indexOf(englishZfs2[i])>=0)value=value.replace(englishZfs2[i],chinaZfs2[i]); 
	 }

	 element.value = value;
	 
	return this.optional(element);
}, "不能输入中文!");
//组织机构代码验证
jQuery.validator.addMethod("orgCode", function(value, element) {
	return this.optional(element) || /^[0-9a-zA-Z|-]+$/.test(value);
}, "无效的组织机构代码!");
/**
* 表单不提交的验证方法
* @param:
* 	end: 为开始时间 yyyy-MM-dd
* 	start:为包含结束时间的控件 yyyy-MM-dd
* @return if end > start ,then return true , otherwise return false.
* @version <2> 2011/11/11 Hayden : modify logic.
* @version <1> 2011/10/27 Hayden : create. 
*/
//不允许跨月订单
jQuery.validator.addMethod("everyMonth", function(end,element,start) {
	var a = $(start).val();
	var endDate = String.parseToDate(end.replaceAll("-",""));
	var startDate = String.parseToDate(a.replaceAll("-",""));
	var endMonth = endDate.getMonth()+1;
	var startMonth = startDate.getMonth()+1;
	//alert(startMonth);
	//alert(endMonth);
	//alert(endMonth == startMonth);
	return (endMonth == startMonth);
}, "不允许提报跨月订单");
	
 function checkidcard(num){  
	    var len = num.length, re;  
	    if (len == 15)  
	        re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);  
	    else if (len == 18)  
	        re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);  
	    else{  
	        //alert("请输入15或18位身份证号,您输入的是 "+len+ "位");   
	        return false;  
	    }  
	    var a = num.match(re);  
	    if (a != null){  
	        if (len==15){  
	            var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);  
	            var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];  
	        }else{  
	            var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);  
	            var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];  
	        }  
	        if (!B){  
	            //alert("输入的身份证号 "+ a[0] +" 里出生日期不对！");   
	            return false;  
	        }  
	    }  
	  
	    return true;  
	}
 
//字符串检查
 jQuery.validator.addMethod("checkPwd", function(value, element) {// ()\-_\+=;:\'<>{}\[\],.?\/\\\|
	 var regx = /^(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*\(\)\-_\+=;:\'<>{}\[\]\\\|,.?\/]+)$)^[\w~!@#$%\^&*\(\)\-_\+=;:\'<>{}\[\]\\\|,.?\/]+$/;
 	return this.optional(element) || regx.test(value);       
  }, "密码必须由数字、字符、特殊字符三种中的两种组成");   
    
 //验证Ip
 jQuery.validator.addMethod("checkIp", function(value, element) {
	 value = trim(value);
	 element.value = value;
	 if(value=='')return true;
	 var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;  
	    if (reSpaceCheck.test(value))  
	    {  
	    	value.match(reSpaceCheck);  
	        if (RegExp.$1<=255&&RegExp.$1>=0 &&RegExp.$2<=255&&RegExp.$2>=0 &&RegExp.$3<=255&&RegExp.$3>=0 &&RegExp.$4<=255 &&RegExp.$4>=0)  
	        return true;   
	        else return false;  
	    }else return false;  
	     
 	return this.optional(element);       
  }, "ip地址格式不正确"); 
 
 jQuery.validator.addMethod("checkIp2", function(value, element) {
	 var regx =  /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
	 return this.optional(element) || regx.test(value);       
  }, "ip地址格式不正确"); 
    
//校验登录名：只能输入5-20个以字母开头、可带数字、“_”、“.”的字串 
 jQuery.validator.addMethod("validateLoginName", function(value, element) {
	 var regx=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._@]){3,19}$/;   
	 //if (!regx.exec(s)) return false; 
	 
	 return this.optional(element) || regx.test(value);       
  }, "Please enter 4-20 characters (begin with letters, while numbers or underline “_”, dot “.” or “@” are allowed)"); 
 
 
//是否含有中文（也包含日文和韩文）
 function isChineseChar(str){
	str=str.replace(/[!@#$%^&*?~、′—\-_+=℃±≥≤°㎡m³m²®×]/g,"");
    var reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/;
    return reg.test(str);
 }
 //同理，是否含有全角符号的函数
 function isFullwidthChar(str){
    var reg = /[\uFF00-\uFFEF]/;
    return reg.test(str);
 } 
 
//删除左右两端的空格 
function trim(str){
	 if(str == null)return '';
	 return str.replace(/(^\s*)|(\s*$)/g, ""); 
} 