﻿// 固定长度校验
// field : 输入项文字描述
// formName : 输入项名
// len : 输入项固定长度
function ValidFixedLen(field,formName,len)
{  
	if (GetStrLength(formName.value) != len)
	{
		ShowAlert(field + "的长度应该为" + len);	
		formName.focus();
		return false;
	}
	return true;
}

// 长度区间校验
// field : 输入项文字描述// formName : 输入项名
// min	 : 输入项允许的最小长度// max : 输入项允许的最大长度
function ValidLen(field,formName,min,max)
{
	if (GetStrLength(formName.value) < min || GetStrLength(formName.value) > max)
	{
		ShowAlert(field + "长度应该为" + min + "--" + max + "位");	
		formName.focus();
		return false;
	}
	return true;
}

// 获得字符串的长度(一个全角字符当作2个字符)
function GetStrLength(s)
{
	var sum=0;
	for(var i=0;i<s.length;i++)
		if ((s.charCodeAt(i)>=0) && (s.charCodeAt(i)<=255)) sum=sum+1;
		else sum=sum+2;
	return sum;
}

// Email格式校验
// field : 输入项文字描述
// formName : 输入项名
function ValidEmail(field,formName)
{
	var check = /^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "格式不正确(a@b.c)");	
		formName.focus();
		return false;
	}
	return true;
}

// 邮政编码(中国)校验
// field : 输入项文字描述
// formName : 输入项名
function ValidZip(field,formName)
{
	var check = /\d{6}/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "格式不正确(518000)");	
		formName.focus();
		return false;
	}
	return true;
}

// Url格式校验
// field : 输入项文字描述
// formName : 输入项名
function ValidUrl(field,formName)
{
	var check = /^http:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "格式不正确(http://www.abc.com)");	
		formName.focus();
		return false;
	}
	return true;
}

// 数字格式校验
// field : 输入项文字描述
// formName : 输入项名
function ValidNumber(field,formName)
{
	var check = /^[0-9]\d*$/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "必须全为数字");	
		formName.focus();
		return false;
	}
	return true;
}

// 必须全为数字或字母长度6~10 用于校验邮箱中间部分
// checkStr : 效验的字符串
//
// formName : 输入项名对像名 如控件
//function ValidNumberOrChar(checkStr)
//{
//	var check = /^[a-z0-9]{6,10}/;

//	if (!check.test(checkStr))
//	{
//		ShowAlert("必须全为数字或字母长度6~10");
		//formName.focus();
//		return false;
//	}
//	return true;
//}

// 整数格式校验(0,正负)
// field : 输入项文字描述
// formName : 输入项名
function ValidInt(field,formName)
{
	var check = /^-?[1-9]\d*$|0/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "必须为整数");	
		formName.focus();
		return false;
	}
	return true;
}

// 浮点数格式校验(0,正负)
// field : 输入项文字描述
// formName : 输入项名
function ValidFloat(field,formName)
{
	var check = /^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0 |0)$/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "必须为浮点数格式(12.3)");	
		formName.focus();
		return false;
	}
	return true;
}


// 金额格式校验
// field : 输入项文字描述
// formName : 输入项名
function ValidMoney(field,formName)
{
	var check = /^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0 |0)$/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "必须为金额格式(12.30)");	
		formName.focus();
		return false;
	}
	return true;
}

// IP地址格式校验
// field : 输入项文字描述
// formName : 输入项名
function ValidIp(field,formName)
{
	var check = /^(\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])){3}$/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "必须为IP格式(192.168.1.1)");	
		formName.focus();
		return false;
	}
	return true;
}

// 日期格式校验
// field : 输入项文字描述
// formName : 输入项名
function ValidDate(field,formName)
{
	var check = /^\d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "必须为日期格式(2006-06-01)");	
		formName.focus();
		return false;
	}
	return true;
}

// 时间格式校验
// field : 输入项文字描述
// formName : 输入项名
function ValidTime(field,formName)
{
	var check = /^([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "必须为时间格式(00:15:39)");	
		formName.focus();
		return false;
	}
	return true;
}

// 中文字符校验
// field : 输入项文字描述
// formName : 输入项名
function ValidCn(field,formName)
{
	var check = /^[\u4e00-\u9fa5]*$/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "必须全为中文字符");	
		formName.focus();
		return false;
	}
	return true;
}

// 数值范围校验
// field : 输入项文字描述
// formName : 输入项名
// min	 : 取值下限
// max : 取值上限
function ValidArea(field,formName,min,max)
{
	if (!ValidNumber(field,formName)) return false;
	
	if (formName.value < min || formName.value > max)
	{
		ShowAlert(field + "取值范围应该为" + min + "--" + max);	
		formName.focus();
		return false;
	}
	return true;
}

//取得双字节字符数
function GetDoubleChNum(val)
{
	var  s  =  val.replace(/\*/g,  "");  
    var  b =  val.replace(/[^\x00-\xff]/g,"**").length;  
    var  cn =  b  -  s.length;  
    return cn;
}

// 英文字符串校验
// field : 输入项文字描述
// formName : 输入项名
function ValidEn(field,formName)
{
	var check = /^[A-Za-z]*$/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "必须为英文字符");	
		formName.focus();
		return false;
	}
	return true;
}

// 英文,数字字符串校验
// field : 输入项文字描述
// formName : 输入项名
function ValidEnNum(field,formName)
{
	var check = /^[A-Za-z0-9]*$/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "必须为英文和数字字符");	
		formName.focus();
		return false;
	}
	return true;
}

// 英文,数字，字母，下划线字符串校验
// field : 输入项文字描述
// formName : 输入项名
function ValidAsc(field,formName)
{
	var check = /^w*$/;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "必须为英文,数字和下划线");	
		formName.focus();
		return false;
	}
	return true;
}

// 自定义正则表达式校验
// field : 输入项文字描述
// formName : 输入项名
// reg : 正则表达式
// hint: 附加提示
function ValidReg(field,formName,reg,hint)
{
	var check = reg;

	if (!check.test(formName.value))
	{
		ShowAlert(field + "格式不正确" + hint);	
		formName.focus();
		return false;
	}
	return true;
}

function checkSelect(formName)
{
	var b = 0;
	for (a = 0;a < formName.elements.length;a++)
	{
		if (formName.elements[a].checked == true)
		{
			b = 1;
			break;
		}
	}    
	if (!b)
	{
		return false;
	}
	
	return true;
}

function ShowAlert(msg, type)
{
	alert(msg);
}

function validString(value,minLength,maxLength,baseString,badString)
{
	var sString = new String(value);
	//最短要求
	if (minLength > 0) if (sString.length < minLength) return false;
	//最长要求
	if (maxLength > 0) if (sString.length > maxLength) return false;
	var i = 0;
	//基础字符串检查
	if (baseString.length> 0)
	{
		for (i=0;i<sString.length;i++)
			if (baseString.indexOf(sString.substr(i,1)) < 0) return false; 
	}
	//非法字符串检查
	for (i=0;i<badString.length;i++)
		if (sString.indexOf(badString.substr(i,1)) >= 0) return false; 

	return true;
	
}