
String.prototype.len=function(){  
		return this.replace(/[^\x00-\xff]/g,"**").length;
	}
	
var cfg_rules	=	{
						'varchar':{'exp':'.+','parm':'g','msg':'该字段不能为空！请输入！'},
						'verifycode':{'exp':'^([a-z0-9]{4})$','parm':'ig','msg':'您输入的验证码不正确，请重新输入！由4位数字组成！'},
						'username':{'exp':'^([a-z0-9_]{4,20})$','parm':'ig','msg':'您输入的用户名不正确，请重新输入！'},
						
						'float':{'exp':'^(0|([1-9]+[0-9]*))(\\.[0-9]+)?$','parm':'g','msg':'该字段只允许输入数字，请重新输入！(最多只能保留小数点后2位)'},
							
						'int':{'exp':'^[1-9]{1}[0-9]{0,}$','parm':'g','report':'请输入大于0的整数值！'},
						'amount':{'exp':'^([1-9]{1}[0-9]{0,})$|^0$','parm':'g','msg':'该字段只允许输入数字，请重新输入！'},
						
						'webcode':{'exp':'^([a-z]){1,50}$','parm':'ig','report':'该字段只允许输入英文字符，请重新输入！'},
						'website':{'exp':'^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w-\\.\\/?%=&]*)?$','parm':'ig','msg':'请正确输入站点地址！'},
						'linkmethod':{'exp':'(^^(0[1-9]{1}\\d{1,2}\\-?)?[1-9]{1}\\d{6,7}(\\-\\d{1,4})?$)|(^1[358]{1}\\d{9}$)','parm':'g','msg':'您输入的手机或电话号码有误，请重新输入！'},
						
						
						'hasCn':{'exp':'[\\u4e00-\\u9fa5]+','parm':'g','msg':'请输入带中文的字符串！'},
						'cn':{'exp':'^[\\u4e00-\\u9fa5]{RPL[1],RPL[2]}$','parm':'g','msg':'您输入的不是全中文字符，请重新输入！'},
						'en':{'exp':'^([a-zA-Z ]+\\.?){RPL[1],RPL[2]}$','parm':'ig','msg':'请正确输入英文名！'},
						
						
						'zone':{'exp':'^0?[1-9]{1}\\d{1,2}$','parm':'g','msg':'请正确输入电话区号！'},
						
						'phone':{'exp':'^(0[1-9]{1}\\d{1,2}\\-?)?[1-9]{1}\\d{6,7}(\\-\\d{1,4})?$','parm':'g','msg':'请正确输入电话号码！'},
						'mobile':{'exp':'^1[358]{1}\\d{9}$','parm':'g','msg':'请正确输入手机号码！'},
						'extno':{'exp':'^\\d{0,4}$','parm':'g','msg':'请输入分机号！'},
						
						'email':{'exp':'^([a-z0-9]+[\\w\\.\\-]*)+@[\\w+\\.\\-]+[a-z]{2,5}$','parm':'ig','msg':'请正确输入Email地址！'},
						
						'dnEn':{'exp':'^([a-z0-9]+[a-z0-9\\-]*){2,46}$','parm':'ig','msg':'请正确输入英文域名地址！'},
						
						'dnCn':{'exp':'^([a-z0-9\\u4e00-\\u9fa5]+[\\u4e00-\\u9fa5a-z0-9\-]*[a-z0-9\\u4e00-\\u9fa5]+){2,20}$','parm':'g','msg':'请正确输入中文域名地址！'},

						'domain':{'exp':'^(www\\.)?(([a-z0-9]+[a-z0-9\\-]*){2,46}|([a-z0-9\\u4e00-\\u9fa5]+[\\u4e00-\\u9fa5a-z0-9\-]*[a-z0-9\\u4e00-\\u9fa5]+){2,20}|([\\u4e00-\\u9fa5]+){2,40})+[\\w+\\.\\-]+[a-z]{2,5}$','parm':'ig','msg':'请正确输入域名地址！'},
						
						'zipcode':{'exp':'^\\d{6}$','parm':'g','msg':'请输入6位邮政编码！'},
						
						'dnshost':{'exp':'^[\\w\\-]{1,14}$','parm':'ig','msg':'请输入DNS(字母、数字、-、_)！'},
						
						'ip':{'exp':'^\\d{1,3}$','parm':'g','msg':'IP值检验失败！'},
						
						'dns':{'exp':'^([0-9a-z]+[\\-]?[0-9a-z]*[\\.]{1})([0-9a-z]+[\\-]?[0-9a-z]*[\\.]?)+[^\\.]$','parm':'ig','msg':'dns由字母、数字、横线组成！'}
					}
					
					

jQuery.extend({
  

  checkform: function(name) {
  	  
  	  var obj;
  	  
  	  try{
  	  
	  	$("form[name='"+name+"'] input,select,textarea").each(function(){
	  		
	  		var v	= $(this).val();
			
			var v_len	= v.replace(/[^\x00-\xff]/g,"**").length;
			
	  		var regexp	=	'';
	  		
	  		var regparm	=	'';
	  		
	  		var msg	=	typeof($(this).attr("report")) == 'string' ? $(this).attr("report") : '';
	  		
	  		obj = this;
	  		
	  		//select下拉选择框特殊处理,只要设置msg字段即值不能为空
	  		if($(this).attr("type")	== 'select-one' && msg != '' && v == ''){
	  			throw msg;
	  		}
	  		
	  		if(typeof($(this).attr("datatype")) == 'string'){
	  			
	  			var dt = $(this).attr("datatype");
	  			
	  			if(cfg_rules[dt] != null){
	  				regexp = cfg_rules[dt]['exp'];
	  				
	  				regparm = cfg_rules[dt]['parm'];
	  				if(msg =='') msg = cfg_rules[dt]['msg'];
	  			}
	  			else
	  				throw "系统校验出错";
	  		}
	  		
	  		
	  		if(typeof($(this).attr("datalen")) == 'string'){
	  			
	  			var dl	=	$(this).attr("datalen").split(",");
	  			
	  				
	  			if(dl.length == 1){
	  				if(v_len != dl[0]){throw msg == '' ? "只允许输入["+dl[0]+"]个字符，请重新输入！" : msg;}
	  				if(dl[0] > 0 && regexp != ''){regexp = regexp.replace(/RPL\[1\]/ig,dl[0]);regexp = regexp.replace(/RPL\[2\]/ig,"");}
	  				if(dl[0]==0 && v_len==0)regexp="";
	  			}
	  			else if(dl.length == 2){
	  				if(v_len < dl[0] || v_len >dl[1]){throw msg == '' ? "该字段只允许输入字符长度 "+dl[0]+" 到 "+dl[1]+"个字符，请重新输入！" : msg;}
	  				if(dl[0] > 0 && regexp != ''){regexp = regexp.replace(/RPL\[1\]/ig,dl[0]);regexp = regexp.replace(/RPL\[2\]/ig,dl[1]);}
	  				if(dl[0]==0 && v_len==0)regexp="";
	  			}
	  			
	  		}
	  		
	  		if(regexp != ''){
	  				
		  			var pattern = new RegExp(regexp,regparm);
		  			if(pattern.test(v)==false){
						throw msg;
					}
	  		}
	  		
	  	});
	  	
	  }catch (e) {
            if(typeof(e) == 'string'){
            	alert(e);
            	if(typeof(obj) == 'object') obj.focus();
            	return false;
            }
        }
	 return true;
  	
  }
  
});


function regTest(v,key,msg){
		if(cfg_rules[key] == null){alert('匹配规则['+key+']不存在！');return false;}
		
		var pattern = new RegExp(cfg_rules[key]['exp'],cfg_rules[key]['parm']);
		 if(pattern.test(v)==false){
			//alert(msg == null ? cfg_rules[key]['msg'] : msg);
			return false;
		}
		return true;
	}
	
	
	
	function CheckDataByFrm(fn){
		//兼容旧版本
		return $.checkform(fn);
	}
