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; } } } } } }