/*--------------------------------------- 功能用途: javascript通用检测方法 创建人: 杨延波 创建日期: 2002.10.9 修改人: 修改日期: 成员变量: ----------------------------------------*/ /*------------------------ 功能:替换任何空白字符 -------------------------*/ function TrimString (strVal) { strTmp = strVal + ""; if (strTmp.length == 0) return (strTmp); reVal = /^\s*/; strTmp = strTmp.replace (reVal, ''); reVal = /\s*$/; return (strTmp.replace (reVal, '')); } /*------------------------ 功能:检测是否是有效数字 -------------------------*/ function Check_Num( num ) { num = ( TrimString( num ) ); if (num.length == 0) return (false); return ( Number( num ) ); } /*------------------------ 功能:检测是否是有效日期 -------------------------*/ function Check_Date (strDate) { strDate = (TrimString (strDate)); if (strDate.length == 0) return (false); reVal = /^([1-2]\d{3})[\/|\-](0?[1-9]|10|11|12)[\/|\-]([1-2]?[0-9]|0[1-9]|30|31)$/; return (reVal.test (strDate)); } //*************************************************** //名称:OrtCheckShortTime //功能:检查是否为时间字符串(hh:nn) //输入:strVal = 原始字符串 //输出: //返回:true = 是, false = 否 //*************************************************** function OrtCheckShortTime (strTime) { var reVal; strTime = (TrimString (strTime)); if (strTime.length == 0) return (false); reVal = /^([0-9]|[01][0-9]|2[0-3])(:([0-9]|[0-5][0-9])){0,2}$/; return (reVal.test (strTime)); } function IntTo2Char (nVal) { if (nVal <= 9) strOut = "0"; else strOut = ""; strOut += nVal; return (strOut); } function CheckEditInteger (strVal) { strVal = TrimString (strVal); if (strVal.length == "") return (false); reVal = /^[\-\+]?([0-9]\d*|0|[1-9]\d{0,2}(,\d{3})*)$/; return (reVal.test (strVal)); } function AdjustTime (strVal) { strVal = TrimString (strVal); if (strVal == "") return (""); nPos = strVal.indexOf (":", 0); if (nPos < 0) { if (CheckEditInteger (strVal)) nHour = Math.ceil (strVal); else nHour = 0; nMinute = 0; nSecond = 0; } else { if (nPos == 0) nHour = 0; else { strTmp = strVal.substring (0, nPos); if (CheckEditInteger (strTmp)) nHour = Math.ceil (strTmp); else nHour = 0; }; strVal = strVal.substring (nPos + 1, strVal.length + 1); nPos = strVal.indexOf (":"); if (nPos < 0) { if (CheckEditInteger (strVal)) nMinute = Math.ceil (strVal); else nMinute = 0; nSecond = 0; } else { if (nPos == 0) nMinute = 0; else { strTmp = strVal.substring (0, nPos); if (CheckEditInteger (strTmp)) nMinute = Math.ceil (strTmp); else nMinute = 0; }; strTmp = strVal.substring (nPos + 1, strVal.length + 1); if (CheckEditInteger (strTmp)) nSecond = Math.ceil (strTmp); else nSecond = 0; }; }; if (nHour < 0) nHour = 0; else if (nHour > 23) nHour = 23; if (nMinute < 0) nMinute = 0; else if (nMinute > 59) nMinute = 59; if (nSecond < 0) nSecond = 0; else if (nSecond > 59) nSecond = 59; return (IntTo2Char (nHour) + ":" + IntTo2Char (nMinute) + ":" + IntTo2Char (nSecond)); } /*------------------------ 功能:检测是否是有效Email -------------------------*/ function Check_Email (strEmail) { strEmail = (TrimString (strEmail)); if (strEmail.length == 0) return (false); reVal = /^[\-!#\$%&'\*\+\\\.\/0-9=\?A-Z\^_`a-z{|}~]+@[\-!#\$%&'\*\+\\\.\/0-9=\?A-Z\^_`a-z{|}~]+(\.[\-!#\$%&'\*\+\\\.\/0-9=\?A-Z\^_`a-z{|}~]+)+$/; return (reVal.test (strEmail)); } /*------------------------ 功能:检测是否是有效时间 -------------------------*/ function Check_Time (strTime) { strTime = (TrimString (strTime)); if (strTime.length == 0) return (false); reVal = /^(([0-9]|[01][0-9]|2[0-3])(:([0-9]|[0-5][0-9])){0,2}|(0?[0-9]|1[0-1])(:([0-9]|[0-5][0-9])){0,2}\s?[aApP][mM])?$/; return (reVal.test (strTime)); } /*------------------------ 功能:检测是否是有效日期特定格式 -------------------------*/ function Check_Date_1 (strDate) { strDate = (TrimString (strDate)); if (strDate.length == 0) return (false); reVal = /^([1-2]\d{3})[\/](0?[1-9]|10|11|12)[\/]([1-2]?[0-9]|0[1-9]|30|31)$/; return (reVal.test (strDate)); } /*------------------------ 功能:检测是否是有效日期特定格式 -------------------------*/ function Check_Date_2 (strDate) { strDate = (TrimString (strDate)); if (strDate.length == 0) return (false); reVal = /^([1-2]\d{3})[\-](0[1-9]|10|11|12)[\-]([1-2][0-9]|0[1-9]|30|31)$/; return (reVal.test (strDate)); } /*-------------------------------------- 功能:换行定行 ---------------------------------------*/ function enter( form, temp ) { if ( window.event.keyCode == 13 ) { eval( form + temp + ".focus()" ); eval( form + temp + ".select()" ); } else return (false); } /*-------------------------------------- 功能:检查字符串长度 ---------------------------------------*/ function ByteString (strVal) { nLen = 0; for (i = 0; i < strVal.length; i ++) { if (strVal.charCodeAt (i) > 255) nLen += 2; else nLen ++; }; return (nLen); } /*-------------------------------------- 功能:按要求截取字符串长度 ---------------------------------------*/ function SubString(strVal,nStrLen) { nLen = 0; nTemp = 0; for (i = 0; i < strVal.length; i ++) { if (strVal.charCodeAt (i) > 255) nLen += 2; else nLen ++; if(nLen <= nStrLen) nTemp = i; else break; }; return(strVal.substr(0,nTemp+1)); } /*------------------------ 功能:检测密码,密码只能由英文字母、数字、减号、下划线、$、#、*、(和)构成,且首位必须是英文字母 -------------------------*/ function Check_Pass( strPass ) { strPass = ( TrimString( strPass ) ); if (strPass.length == 0) return (false); reVal = /^[a-zA-Z0-9-_$#*()]{0,30}$/; // reVal = /^[a-zA-Z]{1}[a-zA-Z0-9-_$#*()]{0,29}$/; return ( reVal.test (strPass) ); } /*------------------------ 功能:检测是否是有效注册号 -------------------------*/ function Check_login( num ) { num = ( TrimString( num ) ); if (num.length == 0) return (false); reVal = /^[0-9]{13}$/; return ( reVal.test (num) ); } /*------------------------ 功能:检测是否是有效浮点数字 -------------------------*/ function Check_Float( num ) { num = ( TrimString( num ) ); if (num.length == 0) return (false); reVal = /^[\-]{0,1}(0|[1-9][0-9]{0,10})([\.][0-9]{0,4}){0,1}$/; return ( reVal.test (num) ); } /*------------------------ 功能:检测是否是有效浮点数字 -------------------------*/ function Check_Float2( num ) { num = ( TrimString( num ) ); if (num.length == 0 ) return (false); reVal = /^[\-]{0,1}(0|[1-9][0-9]{0,9})([\.][0-9]{0,2}){0,1}$/; return ( reVal.test (num) ); } function OrtOpenCenterWindow (URL, Name, Features) { var nWidth; var nHeight; var nLeft; var nTop; var strVal; var nPos; var strComb; var i; var chVal; nLeft = 0; nTop = 0; if (Features == null) return (window.open (URL, Name, Features)); strVal = Features.toUpperCase (); if (strVal.indexOf ("LEFT", 0) >= 0 || strVal.indexOf ("TOP", 0) >= 0) return (window.open (URL, Name, Features)); if ((nPos = strVal.indexOf ("WIDTH", 0)) < 0) return (window.open (URL, Name, Features)); if ((nPos = strVal.indexOf ("=", nPos)) < 0) return (window.open (URL, Name, Features)); strComb = ""; for (i = nPos + 1; i < Features.length; i ++) { chVal = Features.charAt (i); if (chVal == " " || (chVal >= "0" && chVal <= "9")) strComb += chVal; else break; } if ((nWidth = eval (TrimString (strComb))) <= 0) return (window.open (URL, Name, Features)); if ((nPos = strVal.indexOf ("HEIGHT", 0)) < 0) return (window.open (URL, Name, Features)); if ((nPos = strVal.indexOf ("=", nPos)) < 0) return (window.open (URL, Name, Features)); strComb = ""; for (i = nPos + 1; i < Features.length; i ++) { chVal = Features.charAt (i); if (chVal == " " || (chVal >= "0" && chVal <= "9")) strComb += chVal; else break; } if ((nHeight = eval (TrimString (strComb))) <= 0) return (window.open (URL, Name, Features)); nLeft = (window.screen.width - nWidth) / 2; nTop = (window.screen.height - nHeight) / 2; Features += ",left=" + nLeft + ",top=" + nTop; return (window.open (URL, Name, Features)); } function OrtCompareDate (strDate1, strDate2) { var nStart1; var nEnd1; var nYear1; var nMonth1; var nDay1; var nStart2; var nEnd2; var nYear2; var nMonth2; var nDay2; strDate1 = (TrimString (strDate1)); strDate2 = (TrimString (strDate2)); if ((nStart1 = strDate1.indexOf ("/", 0)) < 0) { nStart1 = strDate1.indexOf ("-", 0); nEnd1 = strDate1.indexOf ("-", nStart1 + 1); } else { nEnd1 = strDate1.indexOf ("/", nStart1 + 1); } nYear1 = eval (strDate1.substring (0, nStart1)); nMonth1 = eval (strDate1.substring (nStart1 + 1, nEnd1)); nDay1 = eval (strDate1.substring (nEnd1 + 1, strDate1.length)); if ((nStart2 = strDate2.indexOf ("/", 0)) < 0) { nStart2 = strDate2.indexOf ("-", 0); nEnd2 = strDate2.indexOf ("-", nStart2 + 1); } else { nEnd2 = strDate2.indexOf ("/", nStart2 + 1); } nYear2 = eval (strDate2.substring (0, nStart2)); nMonth2 = eval (strDate2.substring (nStart2 + 1, nEnd2)); nDay2 = eval (strDate2.substring (nEnd2 + 1, strDate2.length)); if (nYear1 > nYear2) return (1); else if (nYear1 < nYear2) return (-1); else { if (nMonth1 > nMonth2) return (1); else if (nMonth1 < nMonth2) return (-1); else { if (nDay1 > nDay2) return (1); else if (nDay1 < nDay2) return (-1); else return (0); }; }; } function UrlStringFormat (strVal) { reVal = /%/g; strTmp = strVal.replace (reVal, "%25"); reVal = /&/g; strTmp = strTmp.replace (reVal, "%26"); reVal = /#/g; strTmp = strTmp.replace (reVal, "%23"); reVal = /\+/g; strTmp = strTmp.replace (reVal, "%2b"); return (strTmp); }