JavaScript 檢查庫

JavaScript 經常使用校驗檢查 的封裝和彙總 (Web開發中都會用到): html


/**
 * JavaScript 檢查庫
 * @author Beau Virgill 
 * @version 1.20
 * @last modify time 2013/2/24
 * #@ validate.js
 * 第一類 檢查並返回檢查結果(true or false)
 * a-1. ifDigit(str,allowNull)  是否爲合法非負整數(examples/ifDigit.html)
 * a-2. ifLetter(str,allowNull) 是否爲英文字母
 * a-3. ifDay(str,allowNull)    是否爲天數
 * a-4. ifMonth(str,allowNull)  是否爲月份
 * a-5. ifYear(str,allowNull)   是否爲年份
 * a-6. ifDate(String,allowNull)   是否爲日期
 * a-7. ifEmail(String,allowNull)  是否爲郵件地址
 * a-8. ifPhone(String,allowNull)  是否爲電話號碼
 * a-9. ifGBK(String,allowNull)    是否爲中文字符
 * a-10.ifMoney(String,allowNull)  是否爲合法貨幣數字
 * a-11 ifMoenyRange(String,int,int,allowNull) 判斷字符串是否爲合法錢數,且是否超過限定範圍
 * a-12. checkMonthLength(mm, dd, yyyy) 判斷是否爲合法日期
 * a-13. getSelectedButton(buttonGroup) 判斷buttongroup爲名的一組radio中有無被選中的項

 * 第二類 檢查後直接報錯
 * b-1. isDigit(Object,allowNull)	 是否爲數字
 * b-2. isLetter(Object,allowNull) 是否爲字母
 * b-3. isDay(Object,allowNull)    是否爲天數
 * b-4. isMonth(Object,allowNull)  是否爲月份
 * b-5. isYear(Object,allowNull)   是否爲年份
 * b-6. isDate(Object,allowNull)   是否爲日期
 * b-7. isEmail(Object,allowNull)  是否爲郵件地址
 * b-8. isPhone(Object,allowNull)  是否爲電話號碼
 * b-9. isGBK(Object,allowNull,msgname)    是否爲中文字符(必須不能是中文)
 * b-10. isMoney(Object,allowNull)  是否爲合法貨幣數字
 * b-11. isMoneyRange(obj,minValue,maxValue,allowNull)	判斷是否合法錢數且是否超過限定額度
 * b-12. checkLeng(Object, min, max,allowNull) 字符串長度是否在指定長度範圍內
 * b-13.1 checkValidDate(yyObject,mmObject,ddObject,allowNull)	對日期進行全面的檢查
 * b-13.2 checkValidDateRange(yyObject1,mmObject1,ddObject1,allowNull1,yyObject2,mmObject2,ddObject2,allowNull2)
 *		檢查起始日期及截止日期
 * b-15. showMsg(String, Object)  顯示提示信息String,光標焦點落在Object上,返回false
 * b-16. isMobile(Object,allowNull)  是否爲手機號碼
 * b-17. checkGBK(Object,allowNull,msgname)    是否爲中文字符(必須是中文)
 * b-18 isPhone(Object,allowNull,msgname) 是否爲固定電話號碼
 * b-19 isMobile(obj,allwoNull,msgname))是否爲手機號碼
 * b-20 isEmail(Object,allwoNull,msgname)是否爲郵件地址
 * b-21  checkCompareDate(objbegintime,objendtime,msgbeginname,msgendname,ischecknow) 比較開始時間和結束時間
 * 第三類 功能函數,並不報錯
 * c-1. getLength(String)  獲取字符長度(每一箇中文字符爲2個字符)
 * c-2. trim(String)  去掉字符串先後的空格並返回
 * c-3. textsTrim(formname)	將form中全部的text文本進行trim操做。

 */
function checkValidStr(name){
    for (i = 0; i < name.length; i++) {
		 if (name.charAt(i) == '$'
			 || name.charAt(i) == '!'
			 || name.charAt(i) == '~'
			 || name.charAt(i) == '`'
			 || name.charAt(i) == '?'
			 || name.charAt(i) == '='
			 || name.charAt(i) == '/'
			 || name.charAt(i) == '|'
			 || name.charAt(i) == '+'
			 || name.charAt(i) == '#'
			 || name.charAt(i) == '%'
			 || name.charAt(i) == '^'
			 || name.charAt(i) == '\''
			 || name.charAt(i) == ';'
			 || name.charAt(i) == '{'
			 || name.charAt(i) == '}'
			 || name.charAt(i) == ']'
			 || name.charAt(i) == '['
			 || name.charAt(i) == ')'
			 || name.charAt(i) == '('
			 || name.charAt(i) == '<'
			 || name.charAt(i) == '>'
			 || name.charAt(i) == '&'
			 || name.charAt(i) == ' '
			 || name.charAt(i) == '"')
		  return false;
		}
		return true;
}

//創建者:Beau Virgill
//判斷字符串是否爲合法非負整數
// a-1 ifDigit(str,allowNull)
function ifDigit(str,allowNull)
{
	slen=str.length;
	if(slen==0) return allowNull;
	for (i=0; i<slen; i++){
		cc = str.charAt(i);
		if (cc <"0" || cc >"9")
		{
			return false;
		}
	}
	return true;
}

//創建者:Beau Virgill
//功能:判斷字符串是否都是英文字母
// a-2 ifLetter(str,allowNull)
function ifLetter(str,allowNull ){	
	slen=getLength(str);
	if (slen==0) return allowNull;
		
	str = str.toUpperCase();
	for ( var i = 0 ; i < slen; i ++ ){
		if ( str.charAt(i) < "A" || str.charAt(i) > "Z" )
			return false;
	}
	return true;
}

// a-3 ifDay(str,allowNull)
function ifDay(str,allowNull)
{
	slen=getLength(str);
	if (slen==0) return allowNull;
	if (!ifDigit(str,allowNull))
	{
		return false;
	}
	if (str < "01" || str > "31")
	{
		return false;
	}
	return true;
}

// a-4 ifMonth(str,allowNull)
function ifMonth(str,allowNull)
{	
	slen=getLength(str);
	if (slen==0) return allowNull;
	
	if (!ifDigit(str,allowNull))
	{
		return false;
	}
	if (str >="1" && str<="9" && slen==1) return true;
	if (str >="01" && str <="12") return true;
	return false;
}

// a-5 ifYear(str,allowNull)
function ifYear(str,allowNull)
{
	slen=getLength(str);
	if (slen==0) return allowNull;

	if (!ifDigit(str,allowNull))
	{
		return false;
	}
	if (str < "1800" || slen < 4)
	{
		return false;
	}
	return true;
}

// a-6 ifDate(str,allowNull)
function ifDate(str,allowNull)
{
	slen=getLength(str);
	if (slen==0) return allowNull;
	if (!ifDigit(str,allowNull))
	{
		return false;
	}
	else if (slen < 8)
	{
		return false;
	}
	cc = str.substr(0,4);
	if (cc < "1800")
	{
		return false;
	}
	cc = str.substr(4,2);
	if (cc < "01" || cc > "12")
	{
		return false;
	}
	cc = str.substr(6,2);
	if (cc < "01" || cc > "31")
	{
		return false;
	}
	return true;
}

//創建者:Beau Virgill
//判斷字符串是否爲合法郵件地址
// a-7 ifEmail(str,allowNull)
function ifEmail(str,allowNull)
{
	if(str.length==0) return allowNull;
	i=str.indexOf("@");
	j=str.lastIndexOf(".");
	if (i == -1 || j == -1 || i > j)
	{
		return false;
	}
	return true;
}

// a-8 ifPhone(str,allowNull)
function ifPhone(str,allowNull)
{
	slen=getLength(str);
	if (slen==0) return allowNull;
	for (i=0; i<slen; i++){
		cc = str.charAt(i);
		if ((cc <"0" || cc >"9") && cc != "-" && cc!="+" && cc!="(" && cc !=")" && cc !="/")
		{
			return false;
		}
	}
	return true;
}

// a-9 ifGBK(str,allowNull)
function ifGBK(str,allowNull)
{
	slen=getLength(str);
	if (slen==0) return allowNull;
	for (i=0; i<slen; i++){
		cc = str.charAt(i);
		cc = escape(cc);
		if (cc.indexOf("%u") >= 0)
		{
			return false;
		}
	}
	return true;
}

//創建者:Beau Virgill
//判斷字符串是否爲合法錢數
// a-10 ifMoeny(String)
function ifMoney(str,allowNull){

	if (str.length==0) return allowNull;

	if ( ( pos = str.indexOf( "." ) ) != -1 ){
	   if (str.length==1)
	     return false;
	     
	   if ( ( pos = str.indexOf(".", pos + 1) )  != -1 )
	     return false;
	}

	for ( var i = 0 ; i < str.length; i ++ ){
	  if (( str.charAt(i) < "0" || str.charAt(i) > "9" )&&(str.charAt(i)!="."))
	    return false;
	}
	
	return true;
}

//創建者:Beau Virgill
//判斷字符串是否爲合法錢數,且是否超過限定範圍
// a-11 ifMoneyRange(str,minValue,maxValue,allowNull)
function ifMoneyRange(str,minValue,maxValue,allowNull)
{
	if (str.length==0) return allowNull;
	
	if(!ifMoney(str))
		return false;
	
	if(parseFloat(str)>=maxValue)
		return false;
	if(parseFloat(str)<minValue)
		return false;
	return true;
}

//創建者:Beau Virgill
//判斷是否爲合法日期
// a-12 checkMonthLength(mm, dd, yyyy)
function checkMonthLength(mm,dd,yyyy){
    if((mm==4||mm==6||mm==9||mm==11) && dd>30){
      return false;
    }else if(mm==2){
      if(yyyy % 4 >0 && dd>28){
        return false;
      }else if(dd>29){
        return false;
      }
    }else if(dd>31){
      return false;
    }
    return true;  
}

//創建者:Beau Virgill
//判斷buttongroup爲名的一組radio中有無被選中的項
// a-13 getSelectButton(buttonGroup)
function getSelectedButton(buttonGroup){
  	for (var i=0;i<buttonGroup.length;i++){
  		if (buttonGroup[i].checked) return true;
  	}
  	return false;
}


//創建者:默認
//功能: 檢查是否爲數字
//示例: isDigit(String,allowNull)
//輸入參數: 須要檢查的表單對象名稱
//輸出參數: true或出錯信息
// b-1.1 isDigit(Object,allowNull)
function isDigit(obj,allowNull,msgname)
{
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allowNull) 
			return showMsg("必須填寫" + msgname + "!",obj);
		return true;
	}
	for (i=0; i<slen; i++){
		cc = obj.value.charAt(i);
		if(!(cc == '.')){
			if (cc <"0" || cc >"9") return showMsg(msgname + "必須爲數字!",obj);
	        }
	}
	
	return true;
}

//創建者:Beau Virgill
//功能: 檢查是否爲數字
//示例: isDigitMaxlength(String obj,int length,boolean allowNull)
//輸入參數: 須要檢查的表單對象名稱,容許的最大長度
//輸出參數: true或出錯信息
// b-1.2 isDigitMaxlength(Object,maxlength,allowNull)
function isDigitMaxlength(obj,maxlength,allowNull)
{
	
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allowNull) 
			return showMsg("必須輸入一個長度不超過"+maxlength+"的整數!",obj);
		return true;
	}
	if(slen>maxlength) return showMsg("長度最大爲"+maxlength+"!",obj);
	
	for (i=0; i<slen; i++){
		cc = obj.value.charAt(i);
		if (cc <"0" || cc >"9")
		{
			return showMsg("必須爲整數!",obj);
		}
	}
	return true;
}

//創建者:Beau Virgill
//功能:判斷字符串是否都是字母
// b-2 isLetter(Object,allowNull)
function isLetter(obj,allowNull){
	obj.value=trim(obj.value);
	str = obj.value;
	slen=getLength(obj.value);
	if ( slen == 0 ){
		if(!allowNull) return showMsg("必須輸入!",obj);
		return true;
	}
	str = str.toUpperCase();
	for ( var i = 0 ; i < slen; i ++ ){
		if ( str.charAt(i) < "A" || str.charAt(i) > "Z" )
			return showMsg("必須都是英文字母!",obj);
	}
	return true;
}

// b-3 isDay(Object,allowNull)
function isDay(obj,allowNull)
{
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allowNull) 
			return showMsg("必須輸入!",obj);
		return true;
	}
	if (!ifDigit(obj.value))
	{
		return false;
	}
	if (obj.value < "01" || obj.value > "31")
	{
		return showMsg("日格式有誤,正確的格式爲:DD,如:02",obj);
	}
	return true;
}

// b-4 isMoneth(Object,allowNull)
function isMonth(obj,allowNull)
{	
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allowNull) 
			return showMsg("必須輸入!",obj);
		return true;
	}
	if (!ifDigit(obj.value))
	{
		return false;
	}
	if (obj.value < "01" || obj.value > "12")
	{
		return showMsg("月份格式有誤,正確的格式爲:MM,如:01",obj);
	}
}

//創建者:默認
//功能:檢查是否合法年份
//示例:isYear(Object)
//輸入參數:被檢查字符串
//輸出參數:true 或 錯誤信息
// b-5 isYear(Object)
function isYear(obj,allowNull)
{
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allowNull) 
			return showMsg("必須輸入!",obj);
		return true;
	}
	slen=obj.value.length;
	if (!ifDigit(obj.value))
	{
		return showMsg("日期有誤,不能含有非數字的字符!",obj);
	}
	if (obj.value < "1800" || slen < 4)
	{
		return showMsg("年份格式有誤,正確的格式爲:YYYY,如:1999",obj);
	}
}

//創建者:默認
//功能:檢查是否合法日期
//示例:isDate(Object)
//輸入參數:被檢查字符串
//輸出參數:true 或 錯誤信息
// b-6 isDate(Object)
function isDate(obj,allowNull)
{
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allowNull) 
			return showMsg("必須輸入!",obj);
		return true;
	}
	
	slen=obj.value.length;
	if (!ifDigit(obj.value))
	{
		return showMsg("日期有誤,不能含有非數字的字符!",obj);
	}
	else if (slen < 8)
	{
		return showMsg("日期格式有誤,正確的格式爲:YYYYMMDD,如:19990102",obj);
	}
	cc = obj.value.substr(0,4);
	if (cc < "1800")
	{
		return showMsg("年份格式有誤,正確的格式爲:YYYY,如:1999",obj);
	}
	cc = obj.value.substr(4,2);
	if (cc < "01" || cc > "12")
	{
		return showMsg("月份格式有誤,正確的格式爲:MM,如:01",obj);
	}
	cc = obj.value.substr(6,2);
	if (cc < "01" || cc > "31")
	{
		return showMsg("日格式有誤,正確的格式爲:DD,如:02",obj);
	}
	return true;
}

// b-7 isEmail(Object)
function isEmail(obj,allowNull)
{
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allowNull)
			return showMsg("必須輸入!",obj);
		return true;
	}

	i=obj.value.indexOf("@");
	j=obj.value.lastIndexOf(".");
	// if (! ifGBK(obj)) i = -1;
	if (i == -1 || j == -1 || i > j)
	{
		return showMsg("電子郵件書寫有誤!",obj);
	}
	return true;
}

// b-8 isPhone(Object)
function isPhone(obj,allwoNull)
{

	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allwoNull){
			return showMsg("必須輸入!",obj);
		}
		return true;
	}
	
	for (i=0; i<slen; i++){
		cc = obj.value.charAt(i);
		if ((cc <"0" || cc >"9") && cc != "-" && cc!="+" && cc!="(" && cc !=")" && cc !="/")
		{
			return showMsg("電話號碼含有非法字符!",obj);
		}
	}
	return true;
}

// b-9 isGBK(Object,allowNull,msgname)
function isGBK(obj,allowNull,msgname)
{
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allowNull) 
			return showMsg("必須輸入" + msgname + "!",obj);
		return true;
	}

	for (i=0; i<slen; i++){
		cc = obj.value.charAt(i);
		cc = escape(cc);
		if (cc.indexOf("%u") >= 0)
		{
			return showMsg( msgname + " 不能爲漢字!",obj);
		}
	}
	return true;
}

//創建者:Beau Virgill
//判斷字符串是否爲合法錢數
// b-10 isMoney(Object,allowNull)
function isMoney(obj,allowNull)
{
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allowNull) 
			return showMsg("必須輸入!",obj);
		return true;
	}

	if (ifMoney(obj.value))
	{
		return true;
	}
	else
	{
		return showMsg("不是合法的貨幣數!",obj);
	}	
	return true;
}

//創建者:Beau Virgill
//判斷是否合法錢數且是否超過限定額度
//b-11 isMoneyRange(obj,minValue,maxValue)
function isMoneyRange(obj,minValue,maxValue,allowNull)
{
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allowNull) 
			return showMsg("必須輸入!",obj);
		return true;
	}

	obj.value=trim(obj.value);
	if(obj.value=="") return true;
	
	if(!ifMoney(obj.value))
		return shoMsg("不是合法的貨幣數!",obj);
	
	if(parseFloat(obj.value)>=maxValue)
		return showMsg("貨幣值過大!",obj);
	if(parseFloat(obj.value)<minValue)
		return showMsg("貨幣值太小!",obj);
	return true;
}

//創建者:
//功能: 檢查字段長度是否在指定範圍內
//示例: chekLeng(form1.t1, 4,10)
//輸入參數: 須要檢查的表單對象名稱,最小長度,最大長度
//輸出參數: true
// b-12 checkLeng(obj, min, max,allowNull)
function checkLeng(obj, min, max,allowNull , msgname )
{
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	
	if(slen==0){
		if(!allowNull) 
			return showMsg("必須輸入" + msgname + "!",obj);
		return true;
	}

	if (slen < min)
	{
		return showMsg("請最少輸入 " + min + " 個字符!",obj);

	}
	if (slen > max)
	{
		return showMsg(msgname + "請最多輸入 " + max + " 個英文字符或"+max/2+"箇中文字符!",obj);

	}
	return true;
}



//創建者:Beau Virgill
//功能:對日期進行全面的檢查
//輸入參數:yyObject:年的object;mmObject:月的object;ddObject:日的object;
//輸入參數:allowNull:true容許日期爲空;false:必須選擇日期
//輸出參數:ture of false;
// b-13.1 checkValiDate(mmObject,ddObject,yyObject,allowNull)
function checkValidDate(yyObject,mmObject,ddObject,allowNull){
  	if(allowNull){
  		if(!(((!yyObject.options[0].selected)&&(!mmObject.options[0].selected)&&(!ddObject.options[0].selected)) || ((yyObject.options[0].selected)&&(mmObject.options[0].selected)&&(ddObject.options[0].selected))))
  			return showMsg("日期必須所有選擇或者所有不選擇!",yyObject);
  	}else{
  		if(yyObject.options[0].selected){
  			return showMsg("請選擇日期的年!",yyObject);
  		}
  		if(mmObject.options[0].selected){
  			return showMsg("請選擇日期的月!",mmObject);
  		}
  		if(ddObject.options[0].selected){
  			return showMsg("請選擇日期的日!",ddObject);
  		}
  	}
  	
  	if(!yyObject.options[0].selected){
  		var my_year=yyObject[yyObject.selectedIndex].value;
  		var my_month=mmObject[mmObject.selectedIndex].value;
  		var my_day=ddObject[ddObject.selectedIndex].value;
  		
  		if(!checkMonthLength(my_month,my_day,my_year))
  			return showMsg("選擇的日期不合法!",ddObject);
  	}
  	return true;
}


//創建者:Beau Virgill
//功能:對日期進行全面的檢查
//輸入參數:yyObject1:其始年的object;mmObject1:其始月的object;ddObject1:其始日的object;
//輸入參數:allowNull1:起始日期true容許日期爲空;false:必須選擇日期
//輸入參數:yyObject2:截止年的object;mmObject2:截止月的object;ddObject2:截止日的object;
//輸入參數:allowNull2:截止日期true容許日期爲空;false:必須選擇日期
//輸出參數:ture of false;
// b-13.2 checkValidDateRange(mmObject1,ddObject1,yyObject1,allowNull1,mmObject2,ddObject2,yyObject2,allowNull2)
function checkValidDateRange(yyObject1,mmObject1,ddObject1,allowNull1,yyObject2,mmObject2,ddObject2,allowNull2){
	if(!checkValidDate(mmObject1,ddObject1,yyObject1,allowNull1)) return false;
	if(!checkValidDate(mmObject2,ddObject2,yyObject2,allowNull2)) return false;
	
	if((!yyObject1.options[0].selected) && (!yyObject2.options[0].selected)){
		date1=new Date(yyObject1-1900,mmObject1-1,ddObject1);
		date2=new Date(yyObject2-1900,mmObject2-1,ddObject2);
		if(date1>date2){
			return showMsg("起始日期不能大於截止日期!",yyObject1);
		}
	}
	return true;
}


//創建者:Beau Virgill
//功能:顯示提示信息Msg,光標焦點落在Obj上,返回false
//     主要用於檢查必要字段是否正確
//示例:showMsg("用戶名不能爲空.",myform.username)
//輸入參數:Msg(提示信息) Obj(光標焦點對象)
//輸出參數:false
// b-15 showMsg(String, Object)
function showMsg(Msg, Obj)
{
	alert( Msg );
	Obj.focus();
	return false;
}

//是否爲手機號碼
function isMobile(obj,allwoNull)
{

	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allwoNull){
			return showMsg("必須輸入!",obj);
		}
		return true;
	}
	
	for (i=0; i<slen; i++){
		cc = obj.value.charAt(i);
		if ((cc <"0" || cc >"9") && cc != "-" && cc!="+" && cc!="(" && cc !=")" && cc !="/")
		{
			return showMsg("手機號碼含有非法字符!",obj);
		}
	}
	if(slen != 11)
        return showMsg("手機號碼長度不正確!",obj);
	tempNo = obj.value.substring(0, 4)*1;

	if (tempNo >= 1300 && tempNo <= 1399)
			return true;
	else
       return showMsg("手機號碼不正確!",obj);
	return true;
}
// b-17 checkGBK(Object,allowNull,msgname)
function checkGBK(obj,allowNull,msgname)
{

	obj.value=trim(obj.value);
	slen=obj.value.length;
	if(slen==0){
		if(!allowNull) 
			return showMsg("必須輸入" + msgname + "!",obj);
		return true;
	}

	for (i=0; i<slen; i++){
		cc = obj.value.charAt(i);
		cc = escape(cc);
		if (!(cc.indexOf("%u") >= 0))
		{
		  return showMsg( msgname + " 必須爲漢字!",obj);
	        }
	
	}
	return true;
}
// b-18 isPhone(Object,allowNull,msgname)
function isPhone(obj,allwoNull,msgname)
{

	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allwoNull){
			return showMsg("必須輸入!",obj);
		}
		return true;
	}
	
	for (i=0; i<slen; i++){
		cc = obj.value.charAt(i);
		if ((cc <"0" || cc >"9") && cc != "-" && cc!="+" && cc!="(" && cc !=")" && cc !="/")
		{
			return showMsg( msgname + "含有非法字符!",obj);
		}
	}
	return true;
}
//b-19 isMobile(obj,allwoNull,msgname)是否爲手機號碼
function isMobile(obj,allwoNull,msgname)
{

	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allwoNull){
			return showMsg("必須輸入!",obj);
		}
		return true;
	}
	
	for (i=0; i<slen; i++){
		cc = obj.value.charAt(i);
		if ((cc <"0" || cc >"9") && cc != "-" && cc!="+" && cc!="(" && cc !=")" && cc !="/")
		{
			return showMsg(msgname+"含有非法字符!",obj);
		}
	}
	if(slen != 11)
        return showMsg(msgname+"長度不正確!",obj);
	tempNo = obj.value.substring(0, 4)*1;

	if (tempNo >= 1300 && tempNo <= 1399)
			return true;
	else
        return showMsg(msgname+"不正確!",obj);
	return true;
}
// b-20 isEmail(Object,allwoNull,msgname)
function isEmail(obj,allowNull,msgname)
{
	obj.value=trim(obj.value);
	slen=getLength(obj.value);
	if(slen==0){
		if(!allowNull)
			return showMsg("必須輸入!",obj);
		return true;
	}

	i=obj.value.indexOf("@");
	j=obj.value.lastIndexOf(".");
	// if (! ifGBK(obj)) i = -1;
	if (i == -1 || j == -1 || i > j)
	{
		return showMsg(msgname+"書寫有誤!",obj);
	}
	return true;
}
// b-21  checkCompareDate(objbegintime,objendtime,msgbeginname,msgendname,ischecknow)
function checkCompareDate(objbegintime,objendtime,msgbeginname,msgendname,ischecknow){
    var flag = false;  
		var sttime = objbegintime.value;
		var endtime = objendtime.value;

		 var today = new Date();
	    var year = today.getYear();
	    var month = today.getMonth() + 1;	
	    if(parseInt(month)<10){
	        month = "0" + parseInt(month);
	    }
	    var day = today.getDate();
	    if(parseInt(day)<10){
	        day = "0" + parseInt(day);
	    }
	
	    var cur = year + "-" + month + "-" + day;
	  	if(ischecknow) {
	    if(sttime > cur){
	        alert("尊敬的用戶,您輸入的"+msgbeginname+"應小於當前時間!");
	        objbegintime.focus();
	        return false;	    	
	    }
      }
	    if(sttime>endtime && endtime != ""){
	        alert("尊敬的用戶,您輸入的"+msgbeginname+"應小於"+msgendname+"!");
	        objbegintime.focus();
	        return false;	    
	    }
	
	    return true;	   
}
/**
如下是第三類
*/
//創建者:Beau Virgill
//加入了漢字的長度判斷
// c-1 getLength(String)
function getLength(str){
	var templen=str.length;
	if(navigator.appName=='Netscape') return templen;
	for(var i=0;i<str.length;i++){
    		var rstr=escape(str.substring(i,i+1)); 
    		if (rstr.substring(0,2)=="%u"){ 
       			templen++;
    		} 
  	}
	return templen;
}

//創建者:Beau Virgill
//功能:去掉字符串先後的空格並返回
//輸入參數:inputStr(待處理的字符串)theForm.mobile
//輸出參數:inputStr(處理後的字符串)
// c-2 trim(String)
function trim(inputStr) {
	var result = inputStr;
	while (result.substring(0,1) == " ") {
		result = result.substring(1,result.length);
	}
	
	while (result.substring(result.length-1, result.length) == " ") {
		result = result.substring(0, result.length-1);
	}
		
	return result;
}


//創建者:Beau Virgill
//功能:將form中全部的text文本進行trim操做。
//輸入參數:myform(form名)
//輸出參數:無
// c-3 textTrim(form名稱)
function textsTrim(myform){
  	for(var i=0;i<myform.elements.length;i++){
  		var etype=myform.elements[i].type;
  		if(etype = "text"){
 			myform.elements[i].value=trim(myform.elements[i].value);
  		}
  	}
}


function matchForbiddenCharacter( matchstr )
{
  var backStr = false;
  matchstr = replaceGBK( matchstr ) ;
  var re = /[^A-Za-z0-9_\.]/
  if ( re.test( matchstr )==true ) {
         backStr = true;
  }
  return backStr;
}

function replaceGBK(obj)
{
    var reStr = "";
        slen=obj.length;
        for (i=0; i<slen; i++){
                cc = obj.charAt(i);
                if ( cc == ' ' )
                {
                  cc = '_' ;
                }
                else
                {
                  cc = escape(cc);
                  if (cc.indexOf("%u") > -1)
                  {
                    cc = '_';
                  }
                }
                reStr += cc;
        }
        return reStr;
}

//創建者:Beau Virgill
//功能:鼠標移到對象上,改變指鼠標針,對象的背景顏色。
//輸入參數:src對象ID,clrOver背景顏色,status爲1表示改變指針樣式,非1不改變
//輸出參數:無
function mOvr(src,clrOver,status){
	if (!src.contains(event.fromElement)) {
		if(status==1)
		{
			src.style.cursor = 'hand';
		}
		src.bgColor = clrOver;
	}
}
//創建者:Beau Virgill
//功能:鼠標從對象上移出,改變指鼠標針,對象的背景顏色。
//輸入參數:src對象ID,clrOver背景顏色,status爲1表示改變指針樣式,非1不改變
//輸出參數:無
function mOut(src,clrIn,status)  {
	if (!src.contains(event.toElement)) {
		if(status==1)
			{
				src.style.cursor = 'default';
			}
		src.bgColor = clrIn;
	}
}

//創建者:Beau Virgill
//功能:驗證數字和字母
//輸入參數:str 字符串
//輸出參數:boolean
function validateCharAndNumber(str){
	if(str==""){
		return false;
	}
	var myReg =/^[A-Za-z0-9]+$/;
	if(myReg.test(str)){
		return true;
	}
return false;
}



//創建者:Beau Virgill
//功能:驗證數字
//輸入參數:str 字符串
//輸出參數:boolean
function validateNumber(str){
	if(str==""){
		return false;
	}
	var myReg =/^[0-9]+$/;
	if(myReg.test(str)){
		return true;
	}
return false;
}

//創建者:Beau Virgill
//功能:檢測郵件地址
//輸入參數:str 字符串
//輸出參數:boolean
function validateEmail(str){
	if(str==""){
		return false;
	}
	var myReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
	if(myReg.test(str)){
		return true;
	}
return false;
}

//創建者:Beau Virgill
//功能:檢測是不是移動的手機號
//輸入參數:str 字符串
//輸出參數:boolean
function validateMobileNum2(str){
	if(str==""){
		return false;
	}
	var myReg = /^(134|135|136|137|138|139|153|158|159|150|151|152|157|188|147|187|182)\d{8}$/;
	if(myReg.test(str)){
		return true;
	}
return false;
}

//創建者:Beau Virgill
//功能:檢測手機號
//輸入參數:str 字符串
//輸出參數:boolean
function validateMobileNum(str){
	if(str==""){
		return false;
	}
	var myReg = /^(134|135|136|137|138|139|153|158|159|150|151|152|157|188|147|187|182)\d{8}$/;
	if(myReg.test(str)){
		return true;
	}
return false;
}
//創建者:Beau Virgill
//功能:驗證日期格式
//輸入參數:str 字符串
//輸出參數:boolean
function isDate(str){
   if(str==""){ 
     return false;
   }
    var myReg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
    if(myReg.test(str)){
		return false; 
	}
	return true;
}

//創建者:Beau Virgill
//功能:驗證郵政編碼
//輸入參數:str 字符串
//輸出參數:boolean
function validateZipCode(str){
	if(str==""){
		return false;
	}
	var myReg = /^[1-9]\d{5}$/;
	if(myReg.test(str)){
		return true;
	}
return false;
}

//創建者:Beau Virgill
//功能:檢查電話號碼或小靈通用戶
//輸入參數:str 字符串
//輸出參數:boolean
function validatePhone(str){
	if(str==""){
		return false;
	}
	var myReg = /\d{3}-\d{8}|\d{4}-\d{7}|\d{3}-\d{7}|\d{4}-\d{8}/;
	if(myReg.test(str)){
		return true;
	}
return false;
}

//創建者:Beau Virgill
//功能:檢測是否爲聯通的手機號
//輸入參數:str 字符串
//輸出參數:boolean
function isMobileByLianTong(str){
	if(str==""){
		return false;
	}
	var myReg = /^(130|131|132|133)\d{8}$/;
	if(myReg.test(str)){
		return true;
	}
return false;
}

//檢測float數據類型
function checkFloat(str)
{
	if(str==""){
		return false;
	}
	var myReg = /^\d{1,7}.\d{2}$/;
	if(myReg.test(str)){
		return true;
	}
return false;
}


//創建者:Beau Virgill
//功能:複選框全選
//輸入參數:e爲全選 ,itemName爲複選框名
//輸出參數:無
function checkAll(e, itemName)
{
  var aa = document.getElementsByName(itemName);
  for (var i=0; i<aa.length; i++)
  {  
  	aa[i].checked  = e.checked;
  }   
}
function checkItem(e, allName)
{
  var all = document.getElementsByName(allName)[0];
  if(!e.checked) all.checked = false;
  else
  {
    var aa = document.getElementsByName(e.name);
    for (var i=0; i<aa.length; i++)
     if(!aa[i].checked) return;
    all.checked = true;
  }
}


//檢測複選框的狀態,全否return false,else return true
function IscheckAllBox(itemName)
{
  var aa = document.getElementsByName(itemName);
  for (var i=0; i<aa.length; i++)
  {  
  	if(aa[i].checked)return true;
  }   
  return false;
}

	function submitForm(){
		var hasselected = false;
		var elems = theform.idList;
		for( var i=0;i<elems.length;i++ ){
		  if( elems[i].checked ){    
			hasselected = true;
		  }
		}
		
		if( !hasselected ){
			alert( "至少選擇一條刪除數據!" );  
			return false;
		} 
		theform.action = "beforeDelGroupTsysAdStation.do";
		theform.submit();
	}


function selectAllNode(aform,v){
	    
	if(aform != null){
	var elems = aform.elements;
		
	for(var i=0;i<elems.length;i++){
        	if(elems[i].type == "checkbox")
       		 elems[i].checked = v;
	}
	}
}

//截取標題sum字符個數
function getNewsTitle(str,sum){
        var rstr=str; 
        var len=0;
            len=getStrLength(rstr);
	if(len>sum){
	 var templen=0;
	 var result="";
	  for(var i=0;i<rstr.length;i++){
	    templen++
	    var tempstr=escape(rstr.substring(i,i+1));
    	       if (tempstr.substring(0,2)=="%u"){ 
       			templen++;
    		} 
    		result+=rstr.substring(i,i+1);
    	        if(templen>=(sum-2)){
    	                break;
    	       }
    	       
	  }
	return result+'…';
	}else{
	return rstr;
	}
}
//按單字節計算字符串的長度
function getStrLen(str){
	var len = 0;
	var cnstrCount = 0;	
	for(var i = 0 ; i < str.length ; i++){
		if(str.charCodeAt(i)>255)
			cnstrCount = cnstrCount + 1 ;
	}
	len = str.length + cnstrCount;
	return len;
}

function getStrLength(str){
	var templen=str.length;
	if(navigator.appName=='Netscape') return templen;
	for(var i=0;i<str.length;i++){
    		var rstr=escape(str.substring(i,i+1)); 
    		if (rstr.substring(0,2)=="%u"){ 
       			templen++;
    		} 
  	}
	return templen;
}


//創建者:Beau Virgill
//獲取當前max年內的年份
//參數selectBox爲下拉框的名稱,max 爲範圍
//輸出option元素
function getOptionByYear(selectBox,max){ 
//當前日期
 d = new Date();	
 	for(i =0 ; i < max ; i++){ 		
 		myYear = d.getYear()+ 1 + i - max;
		selectBox.options[selectBox.length] = new Option( myYear,myYear);
		if(i == (max - 1)){
			selectBox.options[i + 1].selected = true;
		}
	}
}

//創建者:Beau Virgill
//對當前日期作默認選中處理
//參數selectBox爲下拉框的名稱,dis爲須要默認的月份與當前的月份距離,若是在當前月份以前,則爲負數(-1,-2....)不然爲(1,2....)當前爲0
//輸出option元素
//調用方式:getOptionByMonth(form1.selectBox, -1)
function getOptionByMonth(selectBox,dis){
	d = new Date();
	var month = d.getMonth() + 1;
	for(var i = 0 ; i < selectBox.length ; i ++){
		if(selectBox.options[i].value == (month + dis)){
			selectBox.options[i].selected = true;
		}
	}
}


//創建者:Beau Virgill
//按比率打開一個showModalDialog窗口
//url爲打開的連接,bl爲至關與屏幕的比率 如0.8,就是百分之八十
//returnvalue能夠返回一個對象
function showModalWindow(url,bl){
 	var h = screen.availHeight*bl;
	var w = screen.availWidth*bl;
 	var returnvalue=showModalDialog(url,'tempwindow',"status:no;resizable:no;help:no;dialogHeight:"+ h +"px; dialogWidth:"+w + "px");
	return returnvalue;
}

//創建者:Beau Virgill
//轉換月份,將一位的月份轉換成二位的月份,如:1轉換成01
function converMonth(str){
	if(str.length==1){		
		return "0"+str;
	}else{
		return str;
	}
}

//創建者:Beau Virgill
//根據主列表的變化加載子列表
//locationObj主列表對象,targetObj子列表對象,sublist數組
function changelocation(locationObj,targetObj,sublist)
    {
    targetObj.length = 0; 
	targetObj.options[targetObj.length] = new Option("請選擇", "");
    var locationid=locationObj.value;
	if(locationid!=""){
    for (var i=0;i < sublist.length; i++)
        {
            if (sublist[i][2] == locationid)
            { 
                targetObj.options[targetObj.length] = new Option(sublist[i][1], sublist[i][0]);
            }        
        }
	}
}

//創建者 
//若是TEMP參數有值,將TEMP設置selected
//locationObj主列表對象,targetObj子列表對象,sublist數組,TEMP值
function changelocation2(locationObj,targetObj,sublist,temp)
    {

    targetObj.length = 0; 
	targetObj.options[targetObj.length] = new Option("請選擇", "");
    var locationid=locationObj.value;
	if(locationid!=""){
    for (var i=0;i < sublist.length; i++)
        {
            if (sublist[i][2] == locationid)
            { 
                targetObj.options[targetObj.length] = new Option(sublist[i][1], sublist[i][0]);
                
                if(temp != null && temp != ''){
                	if(sublist[i][0] == temp){
                		targetObj.options[targetObj.length-1].selected = true;
                	}
                }
            }        
        }
	}
}
相關文章
相關標籤/搜索