/**//*
用途：检查输入的电话号码格式是否正确
输入：strPhone：字符串
返回：如果通过验证返回true,否则返回false
 */
function checkPhone(strPhone){
	var phoneRegWithArea = /^[0][1-9]...{2,3}-[0-9]...{5,10}$/;
	var phoneRegNoArea = /^[1-9]...{1}[0-9]...{5,8}$/;
	var prompt = "您输入的电话号码不正确!";
	if( strPhone.length > 9 ){
		if( phoneRegWithArea.test(strPhone) ){
			return true;
		}else{
			alert( prompt );
		return false;
		}
	}else{
		if( phoneRegNoArea.test( strPhone ) ){
		return true;
		}else{
		alert( prompt );
		return false;
		}
	}
}

/**//*
用途：检查输入的Email信箱格式是否正确
输入：strEmail：字符串
返回：如果通过验证返回true,否则返回false
 
*/
function checkEmail(strEmail){
	//var emailReg = /^[_a-z0-9]+@([_a-z0-9]+.)+[a-z0-9]{2,3}$/;
	//var emailReg = /^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$/;
//	var emailReg = /^([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/;
	var emailReg = /^([a-zA-Z0-9_-_._-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
	if( emailReg.test(strEmail)){
	  	return true;
	}else{
		return false;
	}
}

/**//*
用途：检查输入的QQ格式是否正确
输入：strQQ：字符串
返回：如果通过验证返回true,否则返回false
 
*/
function checkQQ(strQQ){
	var QQReg = /^[1-9][0-9]{4,}$/;
	if( QQReg.test(strQQ)){
	  	return true;
	}else{
		alert("您输入的QQ不正确！");
		return false;
	}
}

/**//*
用途：检查输入的手机格式是否正确
输入：strTel：字符串
返回：如果通过验证返回true,否则返回false
 
*/
function checkTel(strTel){
	var TelReg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
	if( TelReg.test(strTel)){
	  	return true;
	}else{
		return false;
	}
}

/**//*
用途：检查输入的MSN信箱格式是否正确
输入：strMsn：字符串
返回：如果通过验证返回true,否则返回false
 
*/
function checkMsn(strMsn){
	//var emailReg = /^[_a-z0-9]+@([_a-z0-9]+.)+[a-z0-9]{2,3}$/;
	var MsnReg = /^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$/;
	if( MsnReg.test(strMsn)){
	  	return true;
	}else{
		alert("您输入的MSN地址格式不正确！");
		return false;
	}
}

function isChinaOrNumbOrLett( s ){//判断是否是数字组成
 
var regu = /^[0-9]$/;
var re = new RegExp(regu);
if (re.test(s)){
return true;
}else{
return false;
}
}

function checkIP(strIp){
	//var emailReg = /^[_a-z0-9]+@([_a-z0-9]+.)+[a-z0-9]{2,3}$/;
	var IPReg = /^(\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])$/; 
	if( IPReg.test(strIp)){
	  	return true;
	}else{
		return false;
	}
}

/**//*
用途：检查是不是输入数字
 
*/
function isNumber(oNum) 
   { 
  if(!oNum) return false; 
  var strP=/^\d+(\.\d+)?$/; 
  if(!strP.test(oNum)) return false; 
  try{ 
  if(parseFloat(oNum)!=oNum) return false; 
  } 
  catch(ex) 
  { 
   return false; 
  } 
  return true; 
   }
   
/**  
 * 格式化数字显示方式   
 * 用法  
 * formatNumber(12345.999,'#,##0.00');  
 * formatNumber(12345.999,'#,##0.##');  
 * formatNumber(123,'000000');  
 * @param num  
 * @param pattern  
 */  
function formatNumber(num,pattern){   
  var strarr = num?num.toString().split('.'):['0'];   
  var fmtarr = pattern?pattern.split('.'):[''];   
  var retstr='';   
  
  // 整数部分   
  var str = strarr[0];   
  var fmt = fmtarr[0];   
  var i = str.length-1;     
  var comma = false;   
  for(var f=fmt.length-1;f>=0;f--){   
    switch(fmt.substr(f,1)){   
      case '#':   
        if(i>=0 ) retstr = str.substr(i--,1) + retstr;   
        break;   
      case '0':   
        if(i>=0) retstr = str.substr(i--,1) + retstr;   
        else retstr = '0' + retstr;   
        break;   
      case ',':   
        comma = true;   
        retstr=','+retstr;   
        break;   
    }   
  }   
  if(i>=0){   
    if(comma){   
      var l = str.length;   
      for(;i>=0;i--){   
        retstr = str.substr(i,1) + retstr;   
        if(i>0 && ((l-i)%3)==0) retstr = ',' + retstr;    
      }   
    }   
    else retstr = str.substr(0,i+1) + retstr;   
  }   
  
  retstr = retstr+'.';   
  // 处理小数部分   
  str=strarr.length>1?strarr[1]:'';   
  fmt=fmtarr.length>1?fmtarr[1]:'';   
  i=0;   
  for(var f=0;f<fmt.length;f++){   
    switch(fmt.substr(f,1)){   
      case '#':   
        if(i<str.length) retstr+=str.substr(i++,1);   
        break;   
      case '0':   
        if(i<str.length) retstr+= str.substr(i++,1);   
        else retstr+='0';   
        break;   
    }   
  }   
  return retstr.replace(/^,+/,'').replace(/\.$/,'');   
}

/**//*
严格校验身份证，有返回错误信息字串 
*/
function checkIdcard(idcard){ 
	var Errors=new Array( 
	"验证通过!", 
	"身份证号码位数不对!", 
	"身份证号码出生日期超出范围或含有非法字符!", 
	"身份证号码校验错误!", 
	"身份证地区非法!" 
	); 
	var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}  
	var idcard,Y,JYM; 
	var S,M; 
	var idcard_array = new Array(); 
	idcard_array = idcard.split(""); 
	//地区检验 
	if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4]; 
	//身份号码位数及格式检验 
	switch(idcard.length){ 
	case 15: 
	if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){ 
	ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性 
	} else { 
	ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性 
	} 
	if(ereg.test(idcard)) return Errors[0]; 
	else return Errors[2]; 
	break; 
	case 18: 
	//18位身份号码检测 
	//出生日期的合法性检查  
	//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9])) 
	//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8])) 
	if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){ 
	ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式 
	} else { 
	ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式 
	} 
	if(ereg.test(idcard)){//测试出生日期的合法性 
	//计算校验位 
	S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 
	+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 
	+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 
	+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 
	+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 
	+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 
	+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 
	+ parseInt(idcard_array[7]) * 1  
	+ parseInt(idcard_array[8]) * 6 
	+ parseInt(idcard_array[9]) * 3 ; 
	Y = S % 11; 
	M = "F"; 
	JYM = "10X98765432"; 
	M = JYM.substr(Y,1);//判断校验位 
	if(M == idcard_array[17]) return Errors[0]; //检测ID的校验位 
	else return Errors[3]; 
	} 
	else return Errors[2]; 
	break; 
	default: 
	return Errors[1]; 
	break; 
	} 
}

// 检查 是否以特定的字符串结束
String.prototype.endWith=function(str){
if(str==null||str==""||this.length==0||str.length>this.length)
  return false;
if(this.substring(this.length-str.length)==str)
  return true;
else
  return false;
return true;
}
 
 
 // 检查 是否以特定的字符串开始
String.prototype.startWith=function(str){
if(str==null||str==""||this.length==0||str.length>this.length)
  return false;
if(this.substr(0,str.length)==str)
  return true;
else
  return false;
return true;
} 

/**
* 时间对象的格式化;使用方法:

var testDate = new Date();

var testStr = testDate.format("yyyy年MM月dd日hh小时mm分ss秒");

alert(testStr);

*/
Date.prototype.dateFormat = function(format){
 /*
  * eg:format="yyyy-MM-dd hh:mm:ss";
  */
 var o = {
  	  "M+" :  this.getMonth()+1,  //month
      "d+" :  this.getDate(),     //day
      "h+" :  this.getHours(),    //hour
      "m+" :  this.getMinutes(),  //minute
      "s+" :  this.getSeconds(), //second
      "q+" :  Math.floor((this.getMonth()+3)/3),  //quarter
      "S"  :  this.getMilliseconds() //millisecond
   }
  
   if(/(y+)/.test(format)) {
    format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
   }
 
   for(var k in o) {
    if(new RegExp("("+ k +")").test(format)) {
      format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
    }
   }
 return format;
}

   

