 /*
用途：检查输入字符串是否为空或者全部都是空格
输入：str
返回：
如果全是空返回true,否则返回false
*/
function isNull( str ){
	if ( str == "" ) return true;
	var regu = "^[ ]+$";
	var re = new RegExp(regu);
	return re.test(str);
}

/*
用途：检查输入字符串是否符合正整数格式
输入：
s：字符串
返回：
如果通过验证返回true,否则返回false
 
*/
function isNumber( s ){
	var regu = "^\s*[+-]?[0-9]+\s*$";
	var re = new RegExp(regu);
	if (s.search(re) != -1) {
	return true;
	} else {
	return false;
	}
}

/*
用途：校验身份证格式
输入：num：身份证号
返回：如果通过验证返回true,否则返回false；
*/
function isId(num) 
　　 { 
　　 if (isNaN(num.substring(0,17))) {
		//alert("输入的不是数字！");
		alert("请输入正确的身份证格式!");
	 return false;} 
　　 var len = num.length, re; 
　　 if (len == 15) 
　　 re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/); 
　　 else if (len == 18) 
　　 re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/); 
　　 else {
		//alert("输入的数字位数不对！"); 
		alert("请输入正确的身份证格式!");
	 return false;} 
　　 var a = num.match(re); 
　　 if (a != null) 
　　 { 
　　 if (len==15) 
　　 { 
　　 var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]); 
　　 var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
　　 } 
　　 else 
　　 { 
　　 var D = new Date(a[3]+"/"+a[4]+"/"+a[5]); 
　　 var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
　　 } 
　　 if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对！"); return false;} 
　　 } 
　　 //alert("输入的身份证号码合法"); 
　　 return true; 
} 

/*
用途：检查输入对象的值是否符合E-Mail格式
输入：str 输入的字符串
返回：如果通过验证返回true,否则返回false
*/
function isEmail( str ){
	var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
	if(myReg.test(str)) return true;
	return false;
}

/*
用途：检查输入的电话号码格式是否正确
验证电话号码手机号码，包含153，159号段
如果通过验证返回true,否则返回false
*/ 
function isPhone( str ) {
var reg=/(^[0-9]{2,6}\-[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)|(^0{0,1}15[0-9]{9}$)/ ;
if(reg.test(str)) return true;
	return false;
}

/*
用途：检查输入的长度或大小
如果通过验证返回true,否则返回false
*/
function checkLength(start,end,str,questionName){
 if(Number(start)>=str || str>Number(end)){
 	alert(questionName+",输入的范围请控制在"+start+"和"+end+"之间!");
	return true;
 }
 return false;
}

/*
用途：检查上传文件的文件类型
如果通过验证返回true,否则返回false
*/

function isEmpty(str){
 for(var i=0;i<str.length;i++){
  if(str.charAt(i)!==" "){
    return false;
  }
 }
 return true;
}
function fileTypeCheck(fileName, type){
 if(isEmpty(fileName)){
    alert("请选择文件!");
    return true;
 }
 if(fileName.indexOf("\\") == -1){
    alert("请选择本地文件!");
    return true;
 }
 //lastIndexOf如果没有搜索到则返回为-1
    if(fileName.lastIndexOf(".")!=-1)
 {
    var fileType = (fileName.substring(fileName.lastIndexOf(".")+1,fileName.length)).toLowerCase();
    var suppotFile = new Array();
    suppotFile = type.split("/");
    for(var i =0;i<suppotFile.length;i++){
       if(suppotFile[i]==fileType){
     return false;
    }else{
    continue;
    }
  }
  alert("不支持文件类型"+fileType);
  return true;
 }else
 {
  alert("文件只支持"+type+"类型!");
 }
}

/*
用途：检查上传文件的文件类型
如果通过验证返回true,否则返回false
可以为空
*/
function TypeCheck(fileName, type){
  if(!isEmpty(fileName)){
 //lastIndexOf如果没有搜索到则返回为-1
    if(fileName.lastIndexOf(".")!=-1)
 {
    var fileType = (fileName.substring(fileName.lastIndexOf(".")+1,fileName.length)).toLowerCase();
    var suppotFile = new Array();
    suppotFile = type.split("/");
    for(var i =0;i<suppotFile.length;i++){
       if(suppotFile[i]==fileType){
     return false;
    }else{
    continue;
    }
  }
  alert("不支持文件类型"+fileType);
  return true;
 }else
 {
  alert("文件只支持"+type+"类型!");
 }
}
else
  return false;
}

/*
用途：检查单选多选类型,是否做出了选择
如果通过验证返回true,否则返回false
*/
function isSelected(question,str){
        if(str==undefined){
          alert("请选择"+question);
          return false;
          }
	var checkedCount=0;
	for(var i=0;i<str.length;i++){
		if(str[i].checked)checkedCount++;
	}
	if(checkedCount==0){
		alert(question+"项，未做出选择！");
		return false;
	}
	  
	return true;
}

//////////////////////////////////其它预留///////////////////////////////////////////
/*
用途：检查输入的起止日期是否正确，规则为两个日期的格式正确，
且结束如期>=起始日期
输入：
startDate：起始日期，字符串
endDate：结束如期，字符串
返回：
如果通过验证返回true,否则返回false
 
*/
function checkTwoDate( startDate,endDate ) {
if( !isDate(startDate) ) {
alert("起始日期不正确!");
return false;
} else if( !isDate(endDate) ) {
alert("终止日期不正确!");
return false;
} else if( startDate > endDate ) {
alert("起始日期不能大于终止日期!");
return false;
}
return true;
}


/*
用途：判断是否是日期
输入：date：日期；fmt：日期格式
返回：如果通过验证返回true,否则返回false
*/
function isDate( date, fmt ) {
if (fmt==null) fmt="yyyyMMdd";
var yIndex = fmt.indexOf("yyyy");
if(yIndex==-1) return false;
var year = date.substring(yIndex,yIndex+4);
var mIndex = fmt.indexOf("MM");
if(mIndex==-1) return false;
var month = date.substring(mIndex,mIndex+2);
var dIndex = fmt.indexOf("dd");
if(dIndex==-1) return false;
var day = date.substring(dIndex,dIndex+2);
if(!isNumber(year)||year>"2100" || year< "1900") return false;
if(!isNumber(month)||month>"12" || month< "01") return false;
if(day>getMaxDay(year,month) || day< "01") return false;
return true;
}
 
function getMaxDay(year,month) {
if(month==4||month==6||month==9||month==11)
return "30";
if(month==2)
if(year%4==0&&year%100!=0 || year%400==0)
return "29";
else
return "28";
return "31";
}

 
/*
用途：检查输入字符串是否符合金额格式
格式定义为带小数的正数，小数点后最多三位
输入：
s：字符串
返回：
如果通过验证返回true,否则返回false
 
*/
function isMoney( s ){
var regu = "^[0-9]+[\.][0-9]{0,3}$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
}
/*
用途：检查输入字符串是否只由英文字母和数字和下划线组成
输入：
s：字符串
返回：
如果通过验证返回true,否则返回false
 
*/
function isNumberOr_Letter( s ){//判断是否是数字或字母
 
var regu = "^[0-9a-zA-Z\_]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}
/*
用途：检查输入字符串是否只由英文字母和数字组成
输入：
s：字符串
返回：
如果通过验证返回true,否则返回false
 
*/
function isNumberOrLetter( s ){//判断是否是数字或字母
 
var regu = "^[0-9a-zA-Z]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}
/*
用途：检查输入字符串是否只由汉字、字母、数字组成
输入：
value：字符串
返回：
如果通过验证返回true,否则返回false
 
*/
function isChinaOrNumbOrLett( s ){//判断是否是汉字、字母、数字组成
 
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}

/*
用途：检查输入字符串是否是带小数的数字格式,可以是负数
输入：
s：字符串
返回：
如果通过验证返回true,否则返回false
 
*/
function isDecimal( str ){
if(isInteger(str)) return true;
var re = /^[-]{0,1}(\d+)[\.]+(\d+)$/;
if (re.test(str)) {
if(RegExp.$1==0&&RegExp.$2==0) return false;
return true;
} else {
return false;
}
}

/*
用途：校验ip地址的格式
输入：strIP：ip地址
返回：如果通过验证返回true,否则返回false；
 
*/
function isIP(strIP) {
if (isNull(strIP)) return false;
var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g //匹配IP地址的正则表达式
if(re.test(strIP))
{
if( RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true;
}
return false;
}
 