//说明：检查日期的函数，必须为格式yyyy-M-d
//调用：checkdate(str)
//返回值：如str符合上述的格式，则返回true；否则返回false。
function checkdate(str){ 
	var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/; 
	var r = str.match(reg); 
	if(r==null){
		alert("日期需按要求填写，例如：2002-2-21！");
		return false; 
	}
	r[2]=r[2]-1; 
	var d= new Date(r[1], r[2],r[3]); 
	if(d.getFullYear()!=r[1] || d.getMonth()!=r[2] || d.getDate()!=r[3] ){
		alert("日期需按要求填写，例如：2002-2-21！");
		return false;
	} 
//	if(d.getMonth()!=r[2])return false; 
//	if(d.getDate()!=r[3])return false; 
	if(d.getFullYear()<1753 || d.getFullYear>9999){
		alert("日期超出允许范围！请输入1753-1-1至9999-12-31的日期。");
		return false;
	}
	return true; 
}

//说明：去除两边空白字符的函数，相当于vb的trim
//空白字符包括：空格、tab、垂直tab、回车和form-feed字符
//调用：jtrim(str)
//返回值：去除str两边空格后的字符串
function jtrim(str){
	//使用正则表达式匹配字符串
	//其中\s表示空白字符，\S表示非空白字符，*表示匹配0个或者多个，+表示匹配1个或者多个
	//括号匹配并记录结果，(?:pattern)匹配但不记录结果(实际只能在ie6以后支持)，$1表示括号内得到的匹配结果
	//使用(\s+\S+)*是因为字符串中间也可能出现空白字符
	var reg=/^\s*(\S*(\s+\S+)*)\s*$/g;
	return str.replace(reg,"$1");
}

//给String类型增加trim() , Ltrim() , Rtrim() 方法
//调用：str.trim();str.Ltrim();str.Rtrim().
//返回值：trim为去除两边空格以后的字符串；Ltrim为去除左边空格的字符串；Rtrim为去除右边空格的字符串。
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}

String.prototype.Ltrim = function()
{
return this.replace(/(^\s*)/g, "");
}

String.prototype.Rtrim = function()
{
return this.replace(/(\s*$)/g, "");
}

//检查字符串中是否存在指定的字符
//str 要检查的目标字符串
//reStr 指定字符
function checkstring(str,reStr){
	var reCheck=new RegExp(reStr,"ig")
	return reCheck.test(str);
}


//检查电话号码
//只能由数字-*号组成，且-*不能出现在两边
function checktel(strTel){
	var reTel = new RegExp("^[0-9]+([-*][0-9]+)*$", "ig");
	if (!reTel.test(strTel)){
		return false;
	}
	else{
		return true;
	}
}

//除法函数，用来得到精确的除法结果
//说明：javascript的除法结果会有误差，在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
//调用：accDiv(arg1,arg2)
//返回值：arg1除以arg2的精确结果
function accDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString().split(".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1);
}
}

//乘法函数，用来得到精确的乘法结果
//说明：javascript的乘法结果会有误差，在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
//调用：accMul(arg1,arg2)
//返回值：arg1乘以arg2的精确结果
function accMul(arg1,arg2)
{
a=String(arg1);var i=arg1.length-arg1.indexOf(".")-1;i=(i>=arg1.length)?0:i
b=String(arg2);var j=arg2.length-arg2.indexOf(".")-1;j=(j>=arg2.length)?0:j
return arg1.replace(".","")*arg2.replace(".","")/Math.pow(10,i+j)
}

//加法函数，用来得到精确的加法结果
//说明：javascript的加法结果会有误差，在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
//调用：accAdd(arg1,arg2)
//返回值：arg1加上arg2的精确结果
function accAdd(arg1,arg2){
	var r1,r2,m;
	try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
	try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
	m=Math.pow(10,Math.max(r1,r2));
	return (arg1.mul(m)+arg2.mul(m))/m
}
//从文本框返回数字的函数
//如果文本框中输入字母，则返回0；如果输入字母和数字，则自动截取里面的数字；
//如果要返回一个整数，则令bInt=0。
function cnum(obj,bInt){
	var sTemp;
	if(obj.tagName=="INPUT")sTemp=obj.value.trim()
	else sTemp=obj.trim();
	var reNum=bInt?/^[+-]?0*(\d+).*$/:/^[+-]?0*(\d+(\.\d+)?).*$/;
	if(isNaN(sTemp))sTemp=sTemp.replace(/[^\d\.]/g,"").replace(reNum,"$1");
	sTemp=(sTemp==""?"0":(sTemp.substr(0,1)=="."?"0" + sTemp: (sTemp.substr(0,2)=="-."?"-0" + sTemp.substr(1, sTemp.length-1):sTemp)));
	if(obj.tagName=="INPUT")obj.value=bInt?sTemp.toInt():sTemp.toFloat();
	return bInt?sTemp.toInt():sTemp.toFloat();
}
String.prototype.toFloat=function(){
	return this.length>0?(isNaN(this)?0:parseFloat(Number(this))):0;
}

String.prototype.toInt=function(){
	return this.length>0?(isNaN(this)?0:parseInt(Number(this))):0;
}

//检查Email的函数
function checkEmail(str){ 
	var reg = /^[^;@]+@[^\.;@]+(\.[^\.;@]+)+$/;
	var r = str.match(reg); 
	if(r==null)return false; 
	return true; 
}

//将String格式化成指定的日期表现形式
//in : 2002/12/1
//out: 12-1-2002
function DateFormat(DateStr,strPar){
	var strYear;
	var strMonth;
	var strDay;
	
	//得到年
	strYear="";
	for (i=0;i<DateStr.length;i++){
		if (DateStr.substring(i,i+1)==strPar){
			break;
		}else
		{	
			strYear+=DateStr.substring(i,i+1);
		}
	}
	
	//得到月
	strMonth="";
	for (j=i+1;j<DateStr.length;j++){
		if (DateStr.substring(j,j+1)==strPar){
			break;
		}else
		{
			strMonth+=DateStr.substring(j,j+1);
		}
	}
	//得到日
	strDay="";
	for (k=j+1;k<DateStr.length;k++){
		if (DateStr.substring(k,k+1)==strPar){
			break;
		}else
		{
			strDay+=DateStr.substring(k,k+1);
		}
	}
	return strMonth+"-"+strDay+"-"+strYear;
}