<!-- 返回字的字符长度 -->
function wordLength(){
	return 2;
}

<!-- 计算输入字符串的长度 -->
function countLength(str){
	str = Trim(str);
	var totallength=0;
	for (var i=0;i<str.length;i++){
		var intCode=str.charCodeAt(i);			  
		if (intCode>=0&&intCode<=128) {
			totallength=totallength + 1;	//字符，字母等单字节为 1
		}else {
			totallength=totallength + wordLength();	//GBK下汉字为 2；UTF-8下汉字为 3
		}
	} 
	return totallength;
}

function compareLengthFocus(field, minLength, maxLength, msg, iffocus) {
	var numstr = "~!@#$%^&*+}{?\"'<>/,\\";
	return checkSearchStrFocus(field, minLength, maxLength, msg, numstr, iffocus);
}

function checkSearchStrFocus(field, minLength, maxLength, msg, numstr, iffocus) {
	if (!checkLengthFocus(field, minLength, maxLength, msg, iffocus)) {
		return false;
	}
	return checkCharExcludeFocus(field, numstr, msg, iffocus);
}
function checkCharExcludeFocus(field, numstr, msg, iffocus) {
	var ret = true;
	var character;
	for (var i = 0; i < field.value.length; ++i) {
		character = field.value.charAt(i);
		if (numstr.indexOf(character, 0) >= 0) {	//在
			ret = false;
			break;
		}
	}
	if (!ret) {
		if (msg != '') {
			alert(msg + "不能包含非法字符(" + character + ")！");
		}
		if (iffocus) {
			field.focus();
		}
		return false;
	}
	return true;
}
function checkSearchStr(field, minLength, maxLength, msg, numstr) {
	if (!checkLength(field, minLength, maxLength, msg)) {
		return false;
	}
	return checkCharExclude(field, numstr, msg);

}
<!-- 检查输入对象里的值的长度是否合理，否则返回 false -->
function  checkLength(field,minLength,maxLength,msg ) {
	var str = field.value;
	var totallength = countLength(str);
	if (totallength < minLength) {
		if(msg != ''){
			if(totallength == 0){
				alert(msg+"不能为空！");
			}else{
				alert(msg+"长度不能小于"+minLength+"个字符,当前长度为"+totallength+"个字符！");
			}
		}
		field.focus();
		return false;
	}
	if (totallength > maxLength ) {
		if(msg != ''){
			alert(msg+"长度不能大于"+maxLength+"个字符,当前长度为"+totallength+"个字符！");
		}
		field.focus();
		return false;
	}
	return true;
}

<!-- 只检查输入对象里的值的长度是否合理，不使输入框得到焦点 -->
function  checkLengthOnly(field,minLength,maxLength,msg ) {
	var str = field.value;
	var totallength = countLength(str);
	if (totallength < minLength) {
		if(msg != ''){
			if(totallength == 0){
				alert(msg+"不能为空！");
			}else{
				alert(msg+"长度不能小于"+minLength+"个字符,当前长度为"+totallength+"个字符！");
			}
		}
		return false;
	}
	if (totallength > maxLength ) {
		if(msg != ''){
			alert(msg+"长度不能大于"+maxLength+"个字符,当前长度为"+totallength+"个字符！");
		}
		return false;
	}
	return true;
}
function checkLengthFocus(field, minLength, maxLength, msg, iffocus) {
	var str = RTrim(field.value);
	var totallength = countLength(str);
	if (totallength < minLength) {
		if (msg != '') {
			if (totallength == 0) {
				alert(msg + "不能为空！");
			} else {
				alert(msg + "长度不能小于" + minLength + "个字符,当前长度为" + totallength + "个字符！");
			}
		}
		if (iffocus) {
			field.focus();
		}
		return false;
	}
	if (totallength > maxLength) {
		if (msg != '') {
			alert(msg + "长度不能大于" + maxLength + "个字符,当前长度为" + totallength + "个字符！");
		}
		if (iffocus) {
			field.focus();
		}
		return false;
	}
	return true;
}
<!-- 检查输入对象里的值是否都不在指定的字符串里，否则返回false，另外排除特殊字符 -->
function  compareLength(field,minLength,maxLength,msg, excludeStr) {
	var numstr = "~!@#$%^&*+}{?\"'";
	if(excludeStr !=""){
		numstr = excludeStr; 
	}
	if(!checkLength(field,minLength,maxLength,msg)){
		return false;
	}
	if(!checkCharExclude(field ,numstr,msg)){
		return false;
	}
	return true;
}
<!-- 检查输入对象里的值的长度是否合理，否则返回 false -->
<!-- 检查输入对象里的值是否都不在指定的字符串里，否则返回 false -->
function compareLengthWithChars(field, minLength, maxLength, msg, chars) {
	var numstr = "~!@#$%^&*+}{?\"'<>/,\\";
	if(chars!=""){
		numstr = chars;
	}
	return checkSearchStr(field, minLength, maxLength, msg, numstr);
}
function  compareLengthOnly(field,minLength,maxLength,msg, excludeStr) {
	var numstr = "~!@#$%^&*+}{?\"'";
	if(excludeStr !=""){
		numstr = excludeStr; 
	}
	if(!checkLengthOnly(field,minLength,maxLength,msg)){
		return false;
	}
	if(!checkCharExclude(field ,numstr,msg)){
		return false;
	}
	return true;
}
			
<!-- 检查输入对象里的值是否都在指定的字符串里，否则返回 false -->
function checkCharInclude(field,numstr,msg) {
	var ret = true;
	var char;	
	for (i=0;i<field.value.length;++i) {
		char = field.value.charAt(i);
		if (numstr.indexOf(char,0)==-1){	//不在
			ret = false;
			break;
		}
	}
	if(ret==false){
		if(msg != ''){
			alert(msg+"不能含字符("+char+")！");
		}
		if(field.visiable){		
			field.focus();
		}
		return false;
	}	 
	return true;	
}

<!-- 检查输入对象里的值是否都不在指定的字符串里，否则返回 false -->
function checkCharExclude(field ,numstr,msg) {	
	var ret = true;
	var char;	
	for (i=0;i<field.value.length;++i) {
		char = field.value.charAt(i);
		if (numstr.indexOf(char,0)>=0){	//在
			ret = false;
			break;
		}
	}
	if(ret==false){
		if(msg != ''){
			alert(msg+"不能包含非法字符("+char+")！");
		}
		if(field.visiable){		
			field.focus();
		}
		return false;
	}	
	return true;
}

<!-- 检查检索框里限制字符 -->
function checkSearchWord(field,msg){
	//检索条件里任何位置都不能包含的字符
	if(!checkCharExclude(field,"!@&[]<>'\\/",msg)){
		if(field.visiable){		
			field.focus();
		}
		return false;
	}
    var keyword = field.value;
    keyword = Trim(keyword);
    if(keyword.length == 1){
		//检索条件里不能单独输入这些字符
		if(!checkCharExclude(field,"`~!@#$%^&*()_+-={}[]:\";'<>?,./\\|",msg)){
			if(field.visiable){		
				field.focus();
			}
		    return false;
		}
	}
	//检索条件里不能单独输入and、not、or、()、[]、{}这些字符串
     if(keyword.toUpperCase() == 'AND'||keyword.toUpperCase() == 'NOT'||keyword.toUpperCase() == 'OR'||keyword.toUpperCase() == '()'||keyword.toUpperCase() == '[]'||keyword.toUpperCase() == '{}'){
     	if(msg != ''){      
	       alert(msg+"不能包含非法字符("+keyword+")！");
	   	}
		if(field.visiable){		
			field.focus();
		}
    	return false;
    }
	return true;
}

<!-- 检查是否全部由表示关系的字符~和*组成，是否以~或*开头或结尾 -->
function checkIfAllRew(field, msg) {
	var re = /^[~|\*]+/;
	var str = field.value;
	str = Trim(str);
	if (str != "") {
		var r = str.match(re);
		if (r != null) {
	      	if(msg != ''){      		
				alert(msg + "输入有误！");
			}	
			if(field.visiable){		
				field.focus();
			}
			return false
		}
	}
	if (str.substr(str.length - 1, 1) == "*" || str.substr(str.length - 1, 1) == "~") {
      	if(msg != ''){      
			alert(msg + "输入有误！");
		}
		if(field.visiable){		
			field.focus();
		}
		return false;
	}
	return true;
}


<!-- 检查输入对象里的值是否都是数字，否则返回 false -->
function IsInteger(field,minLength,maxLength,msg) {	
	var numstr = "0123456789";
	if(!checkCharInclude( field ,numstr,msg)){
		return false;
	}	
	if(!checkLength(field,minLength,maxLength,msg)){
		return false;
	}
	return true;
}

<!-- 检查输入对象里的值是否都是字母和数字，否则返回 false -->
function IsLetterOrInteger(field,minLength,maxLength,msg) {
	if(!checkLength(field,minLength,maxLength,msg)){
		return false;
	}
	var numstr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	if(!checkCharInclude( field ,numstr,msg)){
		return false;
	}	
	return true;
}

<!-- 检查输入对象里的值是否都是字母和数字和汉字，否则返回 false -->
function IsLetterOrIntegerOrChinese(field,minLength,maxLength,msg) {
	if(!checkLength(field,minLength,maxLength,msg)){
		return false;
	}
	var str = field.value;
	for (var i=0;i<str.length;i++){
		var intCode=str.charCodeAt(i);			  
		if (intCode>=48 && intCode<=57) {//0-9

		}else if (intCode>=65 && intCode<=90) {//A-Z

		}else if (intCode>=97 && intCode<=122) {//小写

		}else if (intCode==45 || intCode<=95) {//特殊字符
			alert(msg+"不能包含"+str.charAt(i));
			return false;
		}else{//汉字
			
		}		
	} 
	return true;
}

<!-- 检查输入的两日期是否是前面的不晚于，>=后面的，否则返回 false -->
function compareDate(before,after,msg){
	var yearBefore=parseInt(before.substring(0,4),10);
	var monthBefore=parseInt(before.substring(5,7),10);
	var dayBefore=parseInt(before.substring(8,10),10);
	
	var yearAfter=parseInt(after.substring(0,4),10);
	var monthAfter=parseInt(after.substring(5,7),10);
	var dayAfter=parseInt(after.substring(8,10),10);

	if(yearBefore>yearAfter||(yearBefore==yearAfter&&monthBefore>monthAfter)||(yearBefore==yearAfter&&monthBefore==monthAfter&&dayBefore>dayAfter)) {
		if(msg != ''){
			alert(msg+"输入有误！");
		}
		return false;
	}
	return true;
}

<!-- 检查输入的两日期是否是前面的早于，>后面的，否则返回 false -->
function compareDate2(before,after,msg){
	var yearBefore=parseInt(before.substring(0,4),10);
	var monthBefore=parseInt(before.substring(5,7),10);
	var dayBefore=parseInt(before.substring(8,10),10);
	
	var yearAfter=parseInt(after.substring(0,4),10);
	var monthAfter=parseInt(after.substring(5,7),10);
	var dayAfter=parseInt(after.substring(8,10),10);

	if(yearBefore>yearAfter||(yearBefore==yearAfter&&monthBefore>monthAfter)||(yearBefore==yearAfter&&monthBefore==monthAfter&&dayBefore>=dayAfter)) {
		if(msg != ''){
			alert(msg+"输入有误！");
		}
		return false;
	}
	return true;
}

<!-- 检查输入的邮件是否合理，长度是否合理，否则返回 false -->
function  checkMail(field,minLength,maxLength,msg){	
	if(!checkLength(field,minLength,maxLength,msg)){
		return false;
	}
	if(minLength > 0){
		var re=/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})/;
		var str=field.value;
		var r=str.match(re);
		if (r==null){
			if(msg != ''){		
				alert(msg+"格式有误！");
			}
			return false
		}
	}
	return true;
}
<!-- 检查输入的邮件是否合理，长度是否合理，否则返回 false -->
function checkMailFocus(field, minLength, maxLength, msg, iffocus) {
	if (!checkLengthFocus(field, minLength, maxLength, msg, iffocus)) {
		return false;
	}

	if (minLength > 0) {
		var re = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})/;
		var str = field.value;
		var r = str.match(re);
		if (r == null) {
			if (msg != '') {
				alert(msg + "格式有误！");
			}
			return false
		}
	}
	return true;
}
<!-- 检查输入的IP是否合理，否则返回 false -->
function checkIP(field,minLength,maxLength,msg){
	if(!checkLength(field,minLength,maxLength,msg)){
		return false;
	}
	var re=/^(\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])/;
	re = /^(([01]?[\d]{1,2})|(2[0-4][\d])|(25[0-5]))(\.(([01]?[\d]{1,2})|(2[0-4][\d])|(25[0-5]))){3}$/;
	var str=field.value;
	if(str!=""){
		var r=str.match(re);
		if (r==null){
			if(msg != ''){		
				alert(msg+"输入有误！");
			}
			return false
		}
	}
	return true;
}

<!-- 检查输入的网址是否合理，否则返回 false -->
function checkWeburl(field,minLength,maxLength,msg){
	if(!checkLength(field,minLength,maxLength,msg)){
		return false;
	}
	var re=/(?:(?:http[s]?|ftp):\/\/)?[^\/\.]+?\.[^\.\\\/]+?\.\w{2,}$/i;
	re = /^(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]/i;
	var str=field.value;
	if(str!=""){
		var r=str.match(re);
		if (r==null){
			if(msg != ''){		
				alert(msg+"输入有误！");
			}
			return false
		}
	}
	return true;
}

<!-- 截断字符串左边空格-->
function LTrim(str) 
{ 
    var whitespace = new String(" \t\n\r"); 
    var s = new String(str); 
     
    if (whitespace.indexOf(s.charAt(0)) != -1) 
    { 
        var j=0, i = s.length; 
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1) 
        { 
            j++; 
        } 
        s = s.substring(j, i); 
    } 
    return s; 
} 

<!-- 截断字符串右边空格-->
function RTrim(str) 
{ 
    var whitespace = new String(" \t\n\r"); 
    var s = new String(str); 

    if (whitespace.indexOf(s.charAt(s.length-1)) != -1) 
    { 
        var i = s.length - 1; 
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1) 
        { 
            i--; 
        } 
        s = s.substring(0, i+1); 
    } 
    return s; 
} 

<!-- 截断字符串两边空格-->
function Trim(str) 
{ 
    return RTrim(LTrim(str)); 
}


<!-- 检查输入的是否整数，并且合理整数范围是否合理，否则返回 false -->
function checkInteger(field ,min ,max ,msg, ifFocus){
	if(Trim(field.value)==""){
		alert(msg+"不能为空！");
		if(ifFocus){
			field.focus();
		}
		return false;
	}
	var numstr = "0123456789";
	if(!checkCharInclude( field ,numstr,msg)){
		if(ifFocus){
			field.focus();
		}
		return false;
	}
	if(min < max){
		if(parseInt(field.value)> max || parseInt(field.value)< min){
			alert(msg +"范围应在"+min+"和"+max+"之间！")
			if(ifFocus){
				field.focus();
			}
			return false;
		}
	}
	return true;
}
