常用js脚本
更新时间:2006年12月03日 00:00:00 作者:
这些都是工作的时候用到的,希望以后都可以用到
// “”:,。!; typeof(objectName) == ''undefined''
// 定义常量 ------------------------------------------------------------------------
var TxtReadOnlyBgColor = "#EEEEEE" // 当输入框是Readonly属性时的背景色
/*====================函数说明部六=======================================================================================================================
1、JIsNumberText(txtName,sLabel) ◆→检查指定Text输入框的值是否是数值型数据 举例◆→if(!JIsNumberText(txtGrade,"成绩")) return;
2、JIsNumber(sNumber) ◆→检查sNumber字符串是否是数值型数据
3、JFormatNumber(rNumber,iDec) ◆→将数值rNumber保留iDec位小数点进行格式化输出
4、JGetDays(iYear,iMonth) ◆→用于求解iYear年iMonth月份的天数
5、JIsDate(sDate) ◆→检查sDate字符串是否是日期型数据
6、JIsTime(sTime) ◆→检查sTime字符串是否是时间型数据
7、JFormatDate(sDate,sSplit) ◆→将日期型串sDate转换成标准格式"YYYY-MM-DD"的日期型串;
8、JFormatTime(sTime,sSplit) ◆→将时间型串sTime转换成标准格式"HH:MM:SS"的时间型串;
9、JCheckTxtIsDate(txtName,sLabel) ◆→检查文本框txtName内的数据是否是日期型数据
10、JCheckTxtIsTime(txtName,sLabel) ◆→检查文本框txtName内的数据是否是时间型数据
11、JGetCurrentDate() ◆→获取系统的当前日期(日期格式是"YYYY-MM-DD")
12、JGetCurrentCnDate() ◆→获取系统的当前日期(日期格式是"YYYY年MM月DD日")
13、JGetCurrentTime() ◆→获取系统的当前时间(时间格式是"HH:MM:SS")
14、JInitYearSelect(iBefore,iAfter,selName) ◆→初始化相关年Select(下拉框)
15、JInitDateSelect(iYear,iMonth,selName) ◆→初始化iYear年iMonth月的日期的Select中的Option,
16、JCorrectChar(txtName,sLabel,sCorrectStr) ◆→判断Text文本输入框的值是否在合法字符串sCorrectStr中
17、JTextEmpty(txtName,sLabel) ◆→判断一个文本输入框txtName的值是否为空;
18、JLTrim(sString) ◆→对sString字符串进行前空格截除
19、JRTrim(sString) ◆→对sString字符串进行后空格截除
20、JTrim(sString) ◆→对sString字符串进行前后空格截除
21、JLen(sString) ◆→测试字符串sString的长度;
22、JCopy(sString,iStart,iCount) ◆→复制字符串sString从iStart开始iCount个长度
23、JSplitId(sId_Name) ◆→提取[]内的数据
24、JToUpperCase() ◆→自动将输入文本框中的内容转换成大写字符
25、JToLowerCase() ◆→自动将输入文本框中的内容转换成小写字符
26、JNumberText() ◆→限制文本输入框中只能输入数字"0"到"9",".","-"
27、reOpenWin(sUrl,pw,ph) ◆→打开一个居中的窗口,并返回打开的窗口名称
28、reOpenWinSc(sUrl,pw,ph) ◆→打开一个居中的窗口并带有竖滚动条,并返回打开的窗口名称
29、checkLen(obj,iLen,desc) ◆→检测输入的内容长度是否大小规定的长度
30、winCenter() ◆→窗口居中
31、selNotEmpty(obj,sLabel) ◆→检测下拉框必须选择其中一条
32、fucusWin(winName) ◆→焦点定在传入的窗口中
33、closeWin(winName) ◆→关闭窗口
34、JNotInputEnter() ◆→限制输入回车键
35、JIntNumText() ◆→限制文本输入框中只能输入整型数据[0-9] 举例◆→<Input OnKeyPress="JIntNumText()">
36、JInputLetter() ◆→限制文本输入框中只能输入字母[A-Za-z]
37、JInputTel() ◆→限制文本输入框中只能输入电话内容[0-9]、-、(),
38、JInputDate() ◆→限制文本输入框中只能输入日期内容[0-9]、-、/,
39、JIsIntNum() ◆→判断传的文件框的内容是否为整数
====================================================================================================*/
// ==================================================================================
// 第一部分 数值函数
// ==================================================================================
//-----------------------------------------------------------------------------------
//1.1 本函数用于检查指定Text输入框的值是否是数值型数据
// txtName : 文本输入框对象
// sLabel : 文本输入框的标签名称;如:年龄,数量等
//-----------------------------------------------------------------------------------
function JIsNumberText(txtName,sLabel)
{
var strTemp = "";
if (isNaN(txtName.value) || (txtName.value.length == 0))
{
strTemp = "“" + sLabel + "”必须是数值型数据。";
window.alert(strTemp) ;
txtName.value = "0";
txtName.select() ;
return false ;
}
else
{
return true ;
}
}
//------------------------------------------------------------------------------
//1.2 本函数用于检查sNumber字符串是否是数值型数据
//------------------------------------------------------------------------------
function JIsNumber(sNumber)
{
if (isNaN(sNumber) || (sNumber.length == 0))
{ return false ; }
else
{ return true ; }
}
// -----------------------------------------------------------------------------
//1.3 本函数用于将数值rNumber保留iDec位小数点进行格式化输出
// -----------------------------------------------------------------------------
function JFormatNumber(rNumber,iDec)
{
var sResult,sTemp,i ;
var iInt ; // 整数部分
var iDig ; // 小数部分
if (iDec <= 0) //保留的小数点位数小于或等于0
{
sResult = Math.round(rNumber) ;
}
else
{
iInt = Math.floor(rNumber) ;
iDig = rNumber - iInt ;
iDig = Math.round(iDig * Math.pow(10,iDec)) ;
if (iDig >= Math.pow(10,iDec)) // 当小数点部分四舍五入后向整数位进位时
{
iInt = iInt + 1 ;
iDig = 0 ;
}
if (iDig == 0) // 当小数点部分为0是补0
{
sTemp = "" ;
for (i = 1;i <= iDec ; i++) { sTemp = sTemp + ''0''; }
sResult = iInt + "." + sTemp ;
}
else
{
if (iDig < Math.pow(10,iDec - 1))
{
sTemp = "" ;
for (i = 1 ; i <= iDec - 1 ; i ++)
{
if (iDig < Math.pow(10,i)) { sTemp = sTemp + "0" ; }
}
sResult = iInt + "." + sTemp + iDig ;
}
else
{
sResult = iInt + "." + iDig ;
}
}
}
return sResult ;
}
// ==================================================================================
// 第二部分 日期相关函数
// ==================================================================================
// ----------------------------------------------------------------------------------
//2.1 本函数用于用于求解iYear年iMonth月份的天数
// ----------------------------------------------------------------------------------
function JGetDays(iYear,iMonth)
{
var StartDate,EndDate,iStart,iEnd,iDays ;
switch (iMonth)
{
case 1: return 31 ;
case 3: return 31 ;
case 5: return 31 ;
case 7: return 31 ;
case 8: return 31 ;
case 10: return 31 ;
case 12: return 31 ;
case 4: return 30;
case 6: return 30;
case 9: return 30;
case 11: return 30;
case 2:
StartDate = new Date(iYear,1 ,1) ;
iStart = StartDate.getTime() ;
EndDate = new Date(iYear,2,1) ;
iEnd = EndDate.getTime() ;
iDays = iEnd - iStart ;
iDays = iDays / 1000 / 60 / 60 / 24 ;
return Math.round(iDays) ;
break ;
}
}
//------------------------------------------------------------------------------
//2.2 本函数用于检查sDate字符串是否是日期型数据
//------------------------------------------------------------------------------
function JIsDate(sDate)
{
var sArray,sTemp ;
var i,i1 = 0,i2 = 0 ;
var iYear,iMonth,iDay ;
sArray = sDate.split("") ;
if (sDate == "")
{
return false ;
}
else
{
for (i = 0; i <= sArray.length - 1 ; i ++)
{
if ((i1 == 0) && (sArray[i] == "-")) { i1 = i ; continue ;}
if (i1 > 0 && i2 == 0 && sArray[i] == "-" ) { i2 = i; break ; }
}
if (i1 > 0 && i2 > 0)
{
sTemp = JCopy(sDate,0,i1) ;
if (JIsNumber(sTemp)) //判断年是否是数字型数据
{ iYear = parseInt(sTemp,10) ; }
else
{ return false ;}
sTemp = JCopy(sDate,i1 + 1, i2 - i1 - 1) ;
if (JIsNumber(sTemp))
{
iMonth = parseInt(sTemp,10) ;
if (iMonth <= 0 || iMonth >= 13)
{ return false ;}
}
else
{ return false ;}
sTemp = JCopy(sDate,i2 + 1,sDate.length - i2 + 1) ;
if (JIsNumber(sTemp))
{
iDay = parseInt(sTemp,10) ;
if (iDay <= 0 || iDay > JGetDays(iYear,iMonth))
{ return false ;}
}
else
{ return false ;}
}
else
{
return false ;
}
}
return true ;
}
//------------------------------------------------------------------------------
//2.2 本函数用于检查sTime字符串是否是时间型数据
//------------------------------------------------------------------------------
function JIsTime(sTime)
{
var sArray,sTemp ;
var i,i1 = 0,i2 = 0 ;
var iHour,iMin,iSecond ;
sArray = sTime.split("") ;
if (sTime == "")
{
return false ;
}
else
{
for (i = 0; i <= sArray.length - 1 ; i ++)
{
if ((i1 == 0) && (sArray[i] == ":")) { i1 = i ; continue ;}
if (i1 > 0 && i2 == 0 && sArray[i] == ":" ) { i2 = i; break ; }
}
if (i1 > 0)
{
sTemp = JCopy(sTime,0,i1) ;
if (JIsNumber(sTemp)) //判断年是否是数字型数据
{
iHour = parseInt(sTemp,10) ;
if (iHour < 0 || iHour >= 24) { return false ;}
}
else
{ return false ;}
if (i2 > 0)
{
sTemp = JCopy(sTime,i1 + 1, i2 - i1 - 1) ;
if (JIsNumber(sTemp))
{
iMin = parseInt(sTemp,10) ;
if (iMin < 0 || iMin >= 60) { return false ;}
}
else
{ return false ;}
sTemp = JCopy(sTime,i2 + 1,sTime.length - i2 + 1) ;
if (sTemp != "")
{
if (JIsNumber(sTemp))
{
iSecond = parseInt(sTemp,10) ;
if (iSecond < 0 || iSecond >= 60) { return false ;}
}
else
{ return false ;}
}
}
}
else
{
sTemp = sTime ;
if (JIsNumber(sTemp)) //判断年是否是数字型数据
{
iHour = parseInt(sTemp,10) ;
if (iHour < 0 || iHour >= 24) { return false ;}
}
else
{ return false ;}
}
}
return true ;
}
// ----------------------------------------------------------------------------------
//2.3 本函数用于将日期型串sDate转换成标准格式"YYYY-MM-DD"的日期型串;
// 其中参数sSplit是分割字符串;
// ----------------------------------------------------------------------------------
function JFormatDate(sDate,sSplit)
{
var sArray ;
var i,i1 = 0,i2 = 0 ;
var iYear,iMonth,iDay ;
sArray = sDate.split("") ;
for (i = 0; i <= sArray.length - 1 ; i ++)
{
if ((i1 == 0) && (sArray[i] == "-")) { i1 = i ; continue ;}
if (i1 > 0 && i2 == 0 && sArray[i] == "-" ) { i2 = i; break ; }
}
if (i1 > 0 && i2 > 0)
{
iYear = parseInt(JCopy(sDate,0,i1),10)
iMonth = parseInt(JCopy(sDate,i1 + 1, i2 - i1 - 1),10)
iDay = parseInt(JCopy(sDate,i2 + 1,sDate.length - i2 + 1),10)
}
sTemp = iYear + sSplit ;
if (iMonth < 10) { sTemp = sTemp + "0" + iMonth + sSplit ;}
else { sTemp = sTemp + iMonth + sSplit ;}
if (iDay < 10) { sTemp = sTemp + "0" + iDay ;}
else { sTemp = sTemp + iDay ;}
return sTemp ;
}
// ----------------------------------------------------------------------------------
//2.3 本函数用于将时间型串sTime转换成标准格式"HH:MM:SS"的时间型串;
// 其中参数sSplit是分割字符串;
// ----------------------------------------------------------------------------------
function JFormatTime(sTime,sSplit)
{
var sArray ;
var i,i1 = 0,i2 = 0 ;
var iHour,iMin,iSecond ;
sArray = sTime.split("") ;
for (i = 0; i <= sArray.length - 1 ; i ++)
{
if ((i1 == 0) && (sArray[i] == ":")) { i1 = i ; continue ;}
if (i1 > 0 && i2 == 0 && sArray[i] == ":" ) { i2 = i; break ; }
}
if (i1 > 0 && i2 > 0) // 时/分/秒均有值
{
iHour = parseInt(JCopy(sTime,0,i1),10) ;
iMin = parseInt(JCopy(sTime,i1 + 1, i2 - i1 - 1),10) ;
iSecond = parseInt(JCopy(sTime,i2 + 1,sTime.length - i2 + 1),10) ;
}
if (i1 > 0 && i2 <= 0) // 只有时/分有值
{
iHour = parseInt(JCopy(sTime,0,i1),10) ;
iMin = parseInt(JCopy(sTime,i1 + 1,sTime.length - i1 + 1),10) ;
iSecond = 0 ;
}
if (i1<= 0 && i2<= 0) //只有时有值
{
iHour = parseInt(sTime,10) ;
iMin = 0 ;
iSecond = 0 ;
}
if (! JIsNumber(iHour)) { iHour = 0 ; }
if (! JIsNumber(iMin)) { iMin = 0 ; }
if (! JIsNumber(iSecond)) { iSecond = 0 ; }
if (iHour < 10) { sTemp = "0" + iHour + sSplit ;}
else { sTemp = iHour + sSplit ; }
if (iMin < 10) { sTemp = sTemp + "0" + iMin + sSplit ;}
else { sTemp = sTemp + iMin + sSplit ;}
if (iSecond < 10) { sTemp = sTemp + "0" + iSecond ;}
else { sTemp = sTemp + iSecond ;}
return sTemp ;
}
//------------------------------------------------------------------------------
//2.4 本函数用于检查文本框txtName内的数据是否是日期型数据
//------------------------------------------------------------------------------
function JCheckTxtIsDate(txtName,sLabel)
{
var sValue ;
sValue = JLTrim(JRTrim(txtName.value)) ;
if (JIsDate(sValue))
{
txtName.value = JFormatDate(sValue,"-") ;
return true ;
}
else
{
strTemp = "“" + sLabel + "”的值<" + txtName.value + ">不是合法的日期型数据。" + unescape("nn") ;
strTemp = strTemp + "合法的日期型数据格式是:<YYYY-MM-DD>或<YYYY-M-D>。" + unescape("nn") ;
strTemp = strTemp + "如:<2000年4月23日>可写成<2000-04-23>或<2000-4-23>。"
window.alert(strTemp) ;
txtName.select() ;
txtName.focus() ;
return false ;
}
}
//------------------------------------------------------------------------------
//2.4 本函数用于检查文本框txtName内的数据是否是时间型数据
//------------------------------------------------------------------------------
function JCheckTxtIsTime(txtName,sLabel)
{
var sValue ;
sValue = JLTrim(JRTrim(txtName.value)) ;
if (JIsTime(sValue))
{
txtName.value = JFormatTime(sValue,":") ;
return true ;
}
else
{
strTemp = "“" + sLabel + "”的值<" + txtName.value + ">不是合法的时间型数据。" + unescape("nn") ;
strTemp = strTemp + "合法的时间型数据格式是:<HH:MM:SS>或<HH-M-S>。" + unescape("nn") ;
strTemp = strTemp + "如:<20时8分2秒>可写成<20:08:02>或<20:8:2>。"
window.alert(strTemp) ;
txtName.select() ;
txtName.focus() ;
return false ;
}
}
// ----------------------------------------------------------------------------------
//2.5 本函数用于获取系统的当前日期(日期格式是"YYYY-MM-DD")
// ----------------------------------------------------------------------------------
function JGetCurrentDate()
{
var iYear,iMonth,iDate,Today,sDate ;
Today = new Date() ;
iYear = Today.getYear() ;
iMonth = Today.getMonth() + 1 ;
iDate = Today.getDate() ;
sDate = String(iYear) ;
if (iMonth < 10)
{
sDate = sDate + "-0" + String(iMonth) ;
}
else
{
sDate = sDate + "-" + String(iMonth) ;
}
if (iDate < 10)
{
sDate = sDate + "-0" + String(iDate) ;
}
else
{
sDate = sDate + "-" + String(iDate) ;
}
return sDate ;
}
// ----------------------------------------------------------------------------------
//2.6 本函数用于获取系统的当前日期(日期格式是"YYYY年MM月DD日")
// ----------------------------------------------------------------------------------
function JGetCurrentCnDate()
{
var iYear,iMonth,iDate,Today,sDate ;
Today = new Date() ;
iYear = Today.getYear() ;
iMonth = Today.getMonth() + 1 ;
iDate = Today.getDate() ;
sDate = String(iYear) ;
if (iMonth < 10)
{
sDate = sDate + "年0" + String(iMonth) ;
}
else
{
sDate = sDate + "年" + String(iMonth) ;
}
if (iDate < 10)
{
sDate = sDate + "月0" + String(iDate) ;
}
else
{
sDate = sDate + "月" + String(iDate) ;
}
sDate = sDate + "日" ;
return sDate ;
}
// ----------------------------------------------------------------------------------
//2.5 本函数用于获取系统的当前时间(时间格式是"HH:MM:SS")
// ----------------------------------------------------------------------------------
function JGetCurrentTime()
{
var iHour,iMin,iSecond,Today,sTime ;
Today = new Date() ;
iHour = Today.getHours() ;
iMin = Today.getMinutes() ;
iSecond = Today.getSeconds() ;
sTime = "" ;
if (iHour < 10)
{ sTime = "0" + String(iHour) ; }
else
{ sTime = String(iHour) ; }
if (iMin < 10)
{ sTime = sTime + ":0" + String(iMin) ; }
else
{ sTime = sTime + ":" + String(iMin) ; }
if (iSecond < 10)
{ sTime = sTime + ":0" + String(iSecond) ; }
else
{ sTime = sTime + ":" + String(iSecond) ; }
return sTime ;
}
// ----------------------------------------------------------------------------
//2.7 本函数用于初始化相关年Select,
// 其中参数 iBefore表示从当前年开始往前的年份数量;
// iAfter 表示从当前年开始往后的年份数量;
//-----------------------------------------------------------------------------
function JInitYearSelect(iBefore,iAfter,selName)
{
var iYear,i,optItem ;
var dDate = new Date()
for (i = selName.length ; i >= 0 ; i --)
{
selName.options[i] = null;
}
iYear = dDate.getYear() ;
for (i = iYear - iBefore; i <= iYear + iAfter; i ++)
{
optItem = document.createElement("OPTION") ;
optItem.text = i ;
optItem.value = i ;
if (i == iYear) { optItem.selected = true ;}
selName.add(optItem);
}
}
// ----------------------------------------------------------------------------
//2.8 本函数用于初始化iYear年iMonth月的日期的Select中的Option,
//-----------------------------------------------------------------------------
function JInitDateSelect(iYear,iMonth,selName)
{
var iDays,i,optItem,sTemp ;
for (i = selName.length ; i >= 0 ; i --)
{
selName.options[i] = null;
}
iDays = JGetDays(parseInt(iYear),parseInt(iMonth)) ;
for (i = 1; i <= iDays ; i ++)
{
optItem = document.createElement("OPTION") ;
if (i >= 10)
{
optItem.text = i ;
optItem.value = i ;
}
else
{
optItem.text = "0" + i.toString() ;
optItem.value = "0" + i.toString() ;
}
if (i == iYear + 1) { optItem.selected = true ;}
selName.add(optItem);
}
}
// ==================================================================================
// 第三部分 输入合法性检查函数
// ==================================================================================
// ----------------------------------------------------------------------------------
// 3.1 本函数用于判断Text文本输入框的值是否在合法字符串sCorrectStr中
// ----------------------------------------------------------------------------------
function JCorrectChar(txtName,sLabel,sCorrectStr)
{
var i,CheckChar ;
for(i = 0 ; i < txtName.value.length; i ++)
{
CheckChar = txtName.value.charAt(i) ;
if (sCorrectStr.indexOf(CheckChar) == -1)
{
strTemp = "“" + sLabel + "”中含有非法字符。" + unescape("nn") ;
strTemp = strTemp + "合法的字符集是:<" + sCorrectStr + ">。" ;
window.alert(strTemp) ;
txtName.select() ;
txtName.focus() ;
return false ;
}
}
return true ;
}
// -----------------------------------------------------------------------------------
// 3.2 本函数用于判断一个文本输入框txtName的值是否为空;
// -----------------------------------------------------------------------------------
function JTextEmpty(txtName,sLabel)
{
var strTemp = "" ;
strTemp = JRTrim(JLTrim(txtName.value)) ;
if (strTemp =="")
{
strTemp = "“" + sLabel + "”不能为空,请输入正确的“" + sLabel + "”。";
window.alert(strTemp) ;
txtName.focus() ;
return true ;
}
return false ;
}
// ==================================================================================
// 第四部分 字符串相关函数
// ==================================================================================
// -----------------------------------------------------------------------------------
//4.1 本函数用于对sString字符串进行前空格截除
// -----------------------------------------------------------------------------------
function JLTrim(sString)
{
var sStr,i,iStart,sResult = "";
sStr = sString.split("");
iStart = -1 ;
for (i = 0 ; i < sStr.length ; i++)
{
if (sStr[i] != " ")
{
iStart = i;
break;
}
}
if (iStart == -1) { return "" ;} //表示sString中的所有字符均是空格,则返回空串
else { return sString.substring(iStart) ;}
}
// -----------------------------------------------------------------------------------
//4.2 本函数用于对sString字符串进行后空格截除
// -----------------------------------------------------------------------------------
function JRTrim(sString)
{
var sStr,i,sResult = "",sTemp = "" ;
// if (sString.length == 0) { return "" ;} // 参数sString是空串
sStr = sString.split("");
for (i = sStr.length - 1 ; i >= 0 ; i --) // 将字符串进行倒序
{
sResult = sResult + sStr[i];
}
sTemp = JLTrim(sResult) ; // 进行字符串前空格截除
if (sTemp == "") { return "" ; }
sStr = sTemp.split("");
sResult = "" ;
for (i = sStr.length - 1 ; i >= 0 ; i--) // 将经处理后的字符串再进行倒序
{
sResult = sResult + sStr[i];
}
return sResult ;
}
// ------------------------------------------------------------
//本函数用于对sString字符串进行前后空格截除
// ------------------------------------------------------------
function JTrim(sString)
{
var strTmp ;
strTmp = JRTrim(JLTrim(sString)) ;
return strTmp ;
}
// -----------------------------------------------------------------------------
//4.3 本函数用于测试字符串sString的长度;
// 注:对本函数来说,1个汉字代表2单位长度;
// -----------------------------------------------------------------------------
function JLen(sString)
{
var sStr,iCount,i,strTemp ;
iCount = 0 ;
sStr = sString.split("");
for (i = 0 ; i < sStr.length ; i ++)
{
strTemp = escape(sStr[i]);
if (strTemp.indexOf("%u",0) == -1) // 表示是汉字
{
iCount = iCount + 1 ;
}
else
{
iCount = iCount + 2 ;
}
}
return iCount ;
}
//-----------------------------------------------------------------------------
//4.4 本函数用于复制字符串sString从iStart开始iCount个长度
// 注 : 在使用本函数时,iStart,iCount长度单位均为英文字符长度;
// 即1个英文字母表示1个单位长度,而1个汉字表示2个单位长度.
// 当复制的最后一个字符只有半个汉字,则被丢弃;
// 当iStart的位置是后半个汉字时,则iStart将会从下一个有效字符开始;iStart从0开始
//-----------------------------------------------------------------------------
function JCopy(sString,iStart,iCount)
{
var sStr,i,j,strTemp = "",sResult = "";
var iResultLen = 0 ;
if (iStart < 0) { iStart = 0 ;}
if (iCount < 0) { iCount = 0 ;}
sStr = sString.split("");
j = 0 ;
for (i = 0 ; i < sStr.length ; i ++)
{
strTemp = escape(sStr[i]) ;
if (j >= iStart) // 进行复制字符串
{
sResult = sResult + sStr[i] ;
if (strTemp.indexOf("%u",0) == -1) // 复制的是非汉字
{
iResultLen = iResultLen + 1 ;
j = j + 1 ;
}
else
{
iResultLen = iResultLen + 2 ;
j = j + 2 ;
}
if (iResultLen < iCount) { continue ;} // 复制的字串不够长,则继续
if (iResultLen > iCount) // 最后一个字符只有半个汉字,则被丢弃;
{
sResult = sResult.substring(0,sResult.length - 1) ;
break ;
}
if (iResultLen = iCount) { break ; }
}
else
{
if (strTemp.indexOf("%u",0) == -1) // 非汉字
{ j = j + 1 ; }
else
{ j = j + 2 ; }
}
}
return sResult ;
}
// --------------------------------------------------------------
// 本函数用于提取[]内的数据
// --------------------------------------------------------------
function JSplitId(sId_Name)
{
var sStr,i,sResult = "" ;
var iStart = 0 ,iEnd = 0 ;
sStr = sId_Name.split("");
for (i = 0; i< sStr.length; i ++)
{
if (sStr[i] == "[")
{
iStart = i + 1;
break ;
}
}
for (i = 0; i< sStr.length; i ++)
{
if (sStr[i] == "]")
{
iEnd = i - 1 ;
break ;
}
}
if ((iStart > 0) && (iEnd > 0) && (iEnd >= iStart))
{
sResult = JCopy(sId_Name,iStart,iEnd - iStart + 1) ;
}
else
{
sResult = "" ;
}
return sResult ;
}
// ================================================================
// 本函数用于自动将输入文本框中的内容转换成大写字符
// ================================================================
function JToUpperCase()
{
if ((window.event.keyCode >= 97) && (window.event.keyCode <= 122))
{
window.event.keyCode = window.event.keyCode - 32 ;
}
}
// ================================================================
// 本函数用于自动将输入文本框中的内容转换成小写字符
// ================================================================
function JToLowerCase()
{
if ((window.event.keyCode >= 65) && (window.event.keyCode <= 90))
{
window.event.keyCode = window.event.keyCode + 32 ;
}
}
// ================================================================
// 本函数用于限制文本输入框中只能输入数字"0"到"9","."
// ================================================================
function JNumberText()
{
if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
|| (window.event.keyCode == 13) || (window.event.keyCode == 46)))
{
window.event.keyCode = 0 ;
}
}
// ============================================================================================
// 本函数用于打开一个居中的窗口,并返回打开的窗口名称,与fucusWin()和closeWin()一起使用效果更佳
// 其中sUrl:相对地址,pw:宽度;ph:高度
// ===========================================================================================
function reOpenWin(sUrl,pw,ph){
var sFeature,sw=pw,sh=ph;
sFeature="width="+sw+",height="+sh+",top="+((window.screen.height-sh)/2-15)+",left="+((window.screen.width-sw)/2-5)+",";
return window.open(sUrl,"",sFeature);
}
// =========================================================================================================
// 本函数用于打开一个居中的窗口并带有竖滚动条,并返回打开的窗口名称,与fucusWin()和closeWin()一起使用效果更佳
// ==========================================================================================================
function reOpenWinSc(sUrl,pw,ph){
var sFeature,sw=pw,sh=ph;
sFeature="width="+sw+",height="+sh+",top="+((window.screen.height-sh)/2-15)+",left="+((window.screen.width-sw)/2-5)+",scrollbars=yes";
return window.open(sUrl,"",sFeature);
}
// =========================================================================================================
// 本函数用于检测输入的内容长度是否大小规定的长度。
// ==========================================================================================================
function checkLen(obj,iLen,desc){
if(JLen(obj.value)>iLen){
alert( "「"+desc + "」长度不能超〖" + iLen +"〗个字节,每个汉字为两个字节!");
obj.select();
return false;
}
return true;
}
// =========================================================================================================
// 本函数用于窗口居中
// ==========================================================================================================
function winCenter(){
window.moveTo((screen.width-document.body.clientWidth-10)/2,(screen.height-document.body.clientHeight-30)/2);
}
// =========================================================================================================
// 检测下拉框必须选择其中一条
// ==========================================================================================================
function selNotEmpty(obj,sLabel){
var strTemp = "" ;
strTemp = JTrim(obj.value) ;
if (strTemp ==""){
strTemp = "“" + sLabel + "”不能为空,请选择正确的“" + sLabel + "”。";
window.alert(strTemp);
obj(0).selected=true ;
return true;
}
return false;
}
// =========================================================================================================
// 焦点定在传入的窗口中
// ==========================================================================================================
function fucusWin(winName){
try{
if(winName!=null){
winName.focus();
var sWinName=(winName.name).toString;
}
}
catch(e){
//alert(e); //忽略错误
}
}
// =========================================================================================================
// 关闭窗口
// ==========================================================================================================
function closeWin(winName){
try{
if(winName!=null){
winName.close();
}
}
catch(e){
}
}
// =========================================================================================================
// 限制输入回车键
// ==========================================================================================================
function JNotInputEnter(){
if(window.event.keyCode=13) window.event.keyCode=0;
}
// ================================================================
// 本函数用于限制文本输入框中只能输入整型数据[0-9]
// ================================================================
function JIntNumText(){
if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
|| (window.event.keyCode == 13)))
{
window.event.keyCode = 0 ;
}
}
// ================================================================
// 本函数用于限制文本输入框中只能输入字母[A-Za-z]
// ================================================================
function JInputLetter(){
if ( !(((window.event.keyCode >= 65) && (window.event.keyCode <= 90))
|| ((window.event.keyCode >= 97) && (window.event.keyCode <= 122))
|| (window.event.keyCode == 13)))
{
window.event.keyCode = 0 ;
}
}
// ================================================================
// 本函数用于限制文本输入框中只能输入电话内容[0-9]、-、(),
// ================================================================
function JInputTel(){
if (!(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
|| (window.event.keyCode == 45)|| (window.event.keyCode == 13)
|| (window.event.keyCode == 40)|| (window.event.keyCode == 41)))
{
window.event.keyCode = 0 ;
}
}
// ================================================================
// 本函数用于限制文本输入框中只能输入日期内容[0-9]、-、/,
// ================================================================
function JInputDate(){
if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
|| (window.event.keyCode == 45)
|| (window.event.keyCode == 47)|| (window.event.keyCode == 13)))
{
window.event.keyCode = 0 ;
}
}
// ================================================================
// 本函数用于判断传的文件框的内容是否为整数
// ================================================================
function JIsIntNum(Oject,sLabel){
var vNum = /^[d]+$/;
if(!vNum.test(Oject.value)){
var strTemp = "“" + sLabel + "”必须为整数,请输入正确的“" + sLabel + "”。";
alert(strTemp);
Oject.value=0;
Oject.select();
return true;
}
return false;
}
function reOpenWin(sUrl,pw,ph){
var sFeature,sw=pw,sh=ph;
sFeature="width="+sw+",height="+sh+",top="+((window.screen.height-sh)/2-15)+",left="+((window.screen.width-sw)/2-5)+",";
return window.open(sUrl,"",sFeature);
}
function reOpenWinSc(sUrl,pw,ph){
var sFeature,sw=pw,sh=ph;
sFeature="width="+sw+",height="+sh+",top="+((window.screen.height-sh)/2-15)+",left="+((window.screen.width-sw)/2-5)+",scrollbars=yes";
return window.open(sUrl,"",sFeature);
}
// “”:,。!; typeof(objectName) == ''undefined''
// 定义常量 ------------------------------------------------------------------------
var TxtReadOnlyBgColor = "#EEEEEE" // 当输入框是Readonly属性时的背景色
/*====================函数说明部六=======================================================================================================================
1、JIsNumberText(txtName,sLabel) ◆→检查指定Text输入框的值是否是数值型数据 举例◆→if(!JIsNumberText(txtGrade,"成绩")) return;
2、JIsNumber(sNumber) ◆→检查sNumber字符串是否是数值型数据
3、JFormatNumber(rNumber,iDec) ◆→将数值rNumber保留iDec位小数点进行格式化输出
4、JGetDays(iYear,iMonth) ◆→用于求解iYear年iMonth月份的天数
5、JIsDate(sDate) ◆→检查sDate字符串是否是日期型数据
6、JIsTime(sTime) ◆→检查sTime字符串是否是时间型数据
7、JFormatDate(sDate,sSplit) ◆→将日期型串sDate转换成标准格式"YYYY-MM-DD"的日期型串;
8、JFormatTime(sTime,sSplit) ◆→将时间型串sTime转换成标准格式"HH:MM:SS"的时间型串;
9、JCheckTxtIsDate(txtName,sLabel) ◆→检查文本框txtName内的数据是否是日期型数据
10、JCheckTxtIsTime(txtName,sLabel) ◆→检查文本框txtName内的数据是否是时间型数据
11、JGetCurrentDate() ◆→获取系统的当前日期(日期格式是"YYYY-MM-DD")
12、JGetCurrentCnDate() ◆→获取系统的当前日期(日期格式是"YYYY年MM月DD日")
13、JGetCurrentTime() ◆→获取系统的当前时间(时间格式是"HH:MM:SS")
14、JInitYearSelect(iBefore,iAfter,selName) ◆→初始化相关年Select(下拉框)
15、JInitDateSelect(iYear,iMonth,selName) ◆→初始化iYear年iMonth月的日期的Select中的Option,
16、JCorrectChar(txtName,sLabel,sCorrectStr) ◆→判断Text文本输入框的值是否在合法字符串sCorrectStr中
17、JTextEmpty(txtName,sLabel) ◆→判断一个文本输入框txtName的值是否为空;
18、JLTrim(sString) ◆→对sString字符串进行前空格截除
19、JRTrim(sString) ◆→对sString字符串进行后空格截除
20、JTrim(sString) ◆→对sString字符串进行前后空格截除
21、JLen(sString) ◆→测试字符串sString的长度;
22、JCopy(sString,iStart,iCount) ◆→复制字符串sString从iStart开始iCount个长度
23、JSplitId(sId_Name) ◆→提取[]内的数据
24、JToUpperCase() ◆→自动将输入文本框中的内容转换成大写字符
25、JToLowerCase() ◆→自动将输入文本框中的内容转换成小写字符
26、JNumberText() ◆→限制文本输入框中只能输入数字"0"到"9",".","-"
27、reOpenWin(sUrl,pw,ph) ◆→打开一个居中的窗口,并返回打开的窗口名称
28、reOpenWinSc(sUrl,pw,ph) ◆→打开一个居中的窗口并带有竖滚动条,并返回打开的窗口名称
29、checkLen(obj,iLen,desc) ◆→检测输入的内容长度是否大小规定的长度
30、winCenter() ◆→窗口居中
31、selNotEmpty(obj,sLabel) ◆→检测下拉框必须选择其中一条
32、fucusWin(winName) ◆→焦点定在传入的窗口中
33、closeWin(winName) ◆→关闭窗口
34、JNotInputEnter() ◆→限制输入回车键
35、JIntNumText() ◆→限制文本输入框中只能输入整型数据[0-9] 举例◆→<Input OnKeyPress="JIntNumText()">
36、JInputLetter() ◆→限制文本输入框中只能输入字母[A-Za-z]
37、JInputTel() ◆→限制文本输入框中只能输入电话内容[0-9]、-、(),
38、JInputDate() ◆→限制文本输入框中只能输入日期内容[0-9]、-、/,
39、JIsIntNum() ◆→判断传的文件框的内容是否为整数
====================================================================================================*/
// ==================================================================================
// 第一部分 数值函数
// ==================================================================================
//-----------------------------------------------------------------------------------
//1.1 本函数用于检查指定Text输入框的值是否是数值型数据
// txtName : 文本输入框对象
// sLabel : 文本输入框的标签名称;如:年龄,数量等
//-----------------------------------------------------------------------------------
function JIsNumberText(txtName,sLabel)
{
var strTemp = "";
if (isNaN(txtName.value) || (txtName.value.length == 0))
{
strTemp = "“" + sLabel + "”必须是数值型数据。";
window.alert(strTemp) ;
txtName.value = "0";
txtName.select() ;
return false ;
}
else
{
return true ;
}
}
//------------------------------------------------------------------------------
//1.2 本函数用于检查sNumber字符串是否是数值型数据
//------------------------------------------------------------------------------
function JIsNumber(sNumber)
{
if (isNaN(sNumber) || (sNumber.length == 0))
{ return false ; }
else
{ return true ; }
}
// -----------------------------------------------------------------------------
//1.3 本函数用于将数值rNumber保留iDec位小数点进行格式化输出
// -----------------------------------------------------------------------------
function JFormatNumber(rNumber,iDec)
{
var sResult,sTemp,i ;
var iInt ; // 整数部分
var iDig ; // 小数部分
if (iDec <= 0) //保留的小数点位数小于或等于0
{
sResult = Math.round(rNumber) ;
}
else
{
iInt = Math.floor(rNumber) ;
iDig = rNumber - iInt ;
iDig = Math.round(iDig * Math.pow(10,iDec)) ;
if (iDig >= Math.pow(10,iDec)) // 当小数点部分四舍五入后向整数位进位时
{
iInt = iInt + 1 ;
iDig = 0 ;
}
if (iDig == 0) // 当小数点部分为0是补0
{
sTemp = "" ;
for (i = 1;i <= iDec ; i++) { sTemp = sTemp + ''0''; }
sResult = iInt + "." + sTemp ;
}
else
{
if (iDig < Math.pow(10,iDec - 1))
{
sTemp = "" ;
for (i = 1 ; i <= iDec - 1 ; i ++)
{
if (iDig < Math.pow(10,i)) { sTemp = sTemp + "0" ; }
}
sResult = iInt + "." + sTemp + iDig ;
}
else
{
sResult = iInt + "." + iDig ;
}
}
}
return sResult ;
}
// ==================================================================================
// 第二部分 日期相关函数
// ==================================================================================
// ----------------------------------------------------------------------------------
//2.1 本函数用于用于求解iYear年iMonth月份的天数
// ----------------------------------------------------------------------------------
function JGetDays(iYear,iMonth)
{
var StartDate,EndDate,iStart,iEnd,iDays ;
switch (iMonth)
{
case 1: return 31 ;
case 3: return 31 ;
case 5: return 31 ;
case 7: return 31 ;
case 8: return 31 ;
case 10: return 31 ;
case 12: return 31 ;
case 4: return 30;
case 6: return 30;
case 9: return 30;
case 11: return 30;
case 2:
StartDate = new Date(iYear,1 ,1) ;
iStart = StartDate.getTime() ;
EndDate = new Date(iYear,2,1) ;
iEnd = EndDate.getTime() ;
iDays = iEnd - iStart ;
iDays = iDays / 1000 / 60 / 60 / 24 ;
return Math.round(iDays) ;
break ;
}
}
//------------------------------------------------------------------------------
//2.2 本函数用于检查sDate字符串是否是日期型数据
//------------------------------------------------------------------------------
function JIsDate(sDate)
{
var sArray,sTemp ;
var i,i1 = 0,i2 = 0 ;
var iYear,iMonth,iDay ;
sArray = sDate.split("") ;
if (sDate == "")
{
return false ;
}
else
{
for (i = 0; i <= sArray.length - 1 ; i ++)
{
if ((i1 == 0) && (sArray[i] == "-")) { i1 = i ; continue ;}
if (i1 > 0 && i2 == 0 && sArray[i] == "-" ) { i2 = i; break ; }
}
if (i1 > 0 && i2 > 0)
{
sTemp = JCopy(sDate,0,i1) ;
if (JIsNumber(sTemp)) //判断年是否是数字型数据
{ iYear = parseInt(sTemp,10) ; }
else
{ return false ;}
sTemp = JCopy(sDate,i1 + 1, i2 - i1 - 1) ;
if (JIsNumber(sTemp))
{
iMonth = parseInt(sTemp,10) ;
if (iMonth <= 0 || iMonth >= 13)
{ return false ;}
}
else
{ return false ;}
sTemp = JCopy(sDate,i2 + 1,sDate.length - i2 + 1) ;
if (JIsNumber(sTemp))
{
iDay = parseInt(sTemp,10) ;
if (iDay <= 0 || iDay > JGetDays(iYear,iMonth))
{ return false ;}
}
else
{ return false ;}
}
else
{
return false ;
}
}
return true ;
}
//------------------------------------------------------------------------------
//2.2 本函数用于检查sTime字符串是否是时间型数据
//------------------------------------------------------------------------------
function JIsTime(sTime)
{
var sArray,sTemp ;
var i,i1 = 0,i2 = 0 ;
var iHour,iMin,iSecond ;
sArray = sTime.split("") ;
if (sTime == "")
{
return false ;
}
else
{
for (i = 0; i <= sArray.length - 1 ; i ++)
{
if ((i1 == 0) && (sArray[i] == ":")) { i1 = i ; continue ;}
if (i1 > 0 && i2 == 0 && sArray[i] == ":" ) { i2 = i; break ; }
}
if (i1 > 0)
{
sTemp = JCopy(sTime,0,i1) ;
if (JIsNumber(sTemp)) //判断年是否是数字型数据
{
iHour = parseInt(sTemp,10) ;
if (iHour < 0 || iHour >= 24) { return false ;}
}
else
{ return false ;}
if (i2 > 0)
{
sTemp = JCopy(sTime,i1 + 1, i2 - i1 - 1) ;
if (JIsNumber(sTemp))
{
iMin = parseInt(sTemp,10) ;
if (iMin < 0 || iMin >= 60) { return false ;}
}
else
{ return false ;}
sTemp = JCopy(sTime,i2 + 1,sTime.length - i2 + 1) ;
if (sTemp != "")
{
if (JIsNumber(sTemp))
{
iSecond = parseInt(sTemp,10) ;
if (iSecond < 0 || iSecond >= 60) { return false ;}
}
else
{ return false ;}
}
}
}
else
{
sTemp = sTime ;
if (JIsNumber(sTemp)) //判断年是否是数字型数据
{
iHour = parseInt(sTemp,10) ;
if (iHour < 0 || iHour >= 24) { return false ;}
}
else
{ return false ;}
}
}
return true ;
}
// ----------------------------------------------------------------------------------
//2.3 本函数用于将日期型串sDate转换成标准格式"YYYY-MM-DD"的日期型串;
// 其中参数sSplit是分割字符串;
// ----------------------------------------------------------------------------------
function JFormatDate(sDate,sSplit)
{
var sArray ;
var i,i1 = 0,i2 = 0 ;
var iYear,iMonth,iDay ;
sArray = sDate.split("") ;
for (i = 0; i <= sArray.length - 1 ; i ++)
{
if ((i1 == 0) && (sArray[i] == "-")) { i1 = i ; continue ;}
if (i1 > 0 && i2 == 0 && sArray[i] == "-" ) { i2 = i; break ; }
}
if (i1 > 0 && i2 > 0)
{
iYear = parseInt(JCopy(sDate,0,i1),10)
iMonth = parseInt(JCopy(sDate,i1 + 1, i2 - i1 - 1),10)
iDay = parseInt(JCopy(sDate,i2 + 1,sDate.length - i2 + 1),10)
}
sTemp = iYear + sSplit ;
if (iMonth < 10) { sTemp = sTemp + "0" + iMonth + sSplit ;}
else { sTemp = sTemp + iMonth + sSplit ;}
if (iDay < 10) { sTemp = sTemp + "0" + iDay ;}
else { sTemp = sTemp + iDay ;}
return sTemp ;
}
// ----------------------------------------------------------------------------------
//2.3 本函数用于将时间型串sTime转换成标准格式"HH:MM:SS"的时间型串;
// 其中参数sSplit是分割字符串;
// ----------------------------------------------------------------------------------
function JFormatTime(sTime,sSplit)
{
var sArray ;
var i,i1 = 0,i2 = 0 ;
var iHour,iMin,iSecond ;
sArray = sTime.split("") ;
for (i = 0; i <= sArray.length - 1 ; i ++)
{
if ((i1 == 0) && (sArray[i] == ":")) { i1 = i ; continue ;}
if (i1 > 0 && i2 == 0 && sArray[i] == ":" ) { i2 = i; break ; }
}
if (i1 > 0 && i2 > 0) // 时/分/秒均有值
{
iHour = parseInt(JCopy(sTime,0,i1),10) ;
iMin = parseInt(JCopy(sTime,i1 + 1, i2 - i1 - 1),10) ;
iSecond = parseInt(JCopy(sTime,i2 + 1,sTime.length - i2 + 1),10) ;
}
if (i1 > 0 && i2 <= 0) // 只有时/分有值
{
iHour = parseInt(JCopy(sTime,0,i1),10) ;
iMin = parseInt(JCopy(sTime,i1 + 1,sTime.length - i1 + 1),10) ;
iSecond = 0 ;
}
if (i1<= 0 && i2<= 0) //只有时有值
{
iHour = parseInt(sTime,10) ;
iMin = 0 ;
iSecond = 0 ;
}
if (! JIsNumber(iHour)) { iHour = 0 ; }
if (! JIsNumber(iMin)) { iMin = 0 ; }
if (! JIsNumber(iSecond)) { iSecond = 0 ; }
if (iHour < 10) { sTemp = "0" + iHour + sSplit ;}
else { sTemp = iHour + sSplit ; }
if (iMin < 10) { sTemp = sTemp + "0" + iMin + sSplit ;}
else { sTemp = sTemp + iMin + sSplit ;}
if (iSecond < 10) { sTemp = sTemp + "0" + iSecond ;}
else { sTemp = sTemp + iSecond ;}
return sTemp ;
}
//------------------------------------------------------------------------------
//2.4 本函数用于检查文本框txtName内的数据是否是日期型数据
//------------------------------------------------------------------------------
function JCheckTxtIsDate(txtName,sLabel)
{
var sValue ;
sValue = JLTrim(JRTrim(txtName.value)) ;
if (JIsDate(sValue))
{
txtName.value = JFormatDate(sValue,"-") ;
return true ;
}
else
{
strTemp = "“" + sLabel + "”的值<" + txtName.value + ">不是合法的日期型数据。" + unescape("nn") ;
strTemp = strTemp + "合法的日期型数据格式是:<YYYY-MM-DD>或<YYYY-M-D>。" + unescape("nn") ;
strTemp = strTemp + "如:<2000年4月23日>可写成<2000-04-23>或<2000-4-23>。"
window.alert(strTemp) ;
txtName.select() ;
txtName.focus() ;
return false ;
}
}
//------------------------------------------------------------------------------
//2.4 本函数用于检查文本框txtName内的数据是否是时间型数据
//------------------------------------------------------------------------------
function JCheckTxtIsTime(txtName,sLabel)
{
var sValue ;
sValue = JLTrim(JRTrim(txtName.value)) ;
if (JIsTime(sValue))
{
txtName.value = JFormatTime(sValue,":") ;
return true ;
}
else
{
strTemp = "“" + sLabel + "”的值<" + txtName.value + ">不是合法的时间型数据。" + unescape("nn") ;
strTemp = strTemp + "合法的时间型数据格式是:<HH:MM:SS>或<HH-M-S>。" + unescape("nn") ;
strTemp = strTemp + "如:<20时8分2秒>可写成<20:08:02>或<20:8:2>。"
window.alert(strTemp) ;
txtName.select() ;
txtName.focus() ;
return false ;
}
}
// ----------------------------------------------------------------------------------
//2.5 本函数用于获取系统的当前日期(日期格式是"YYYY-MM-DD")
// ----------------------------------------------------------------------------------
function JGetCurrentDate()
{
var iYear,iMonth,iDate,Today,sDate ;
Today = new Date() ;
iYear = Today.getYear() ;
iMonth = Today.getMonth() + 1 ;
iDate = Today.getDate() ;
sDate = String(iYear) ;
if (iMonth < 10)
{
sDate = sDate + "-0" + String(iMonth) ;
}
else
{
sDate = sDate + "-" + String(iMonth) ;
}
if (iDate < 10)
{
sDate = sDate + "-0" + String(iDate) ;
}
else
{
sDate = sDate + "-" + String(iDate) ;
}
return sDate ;
}
// ----------------------------------------------------------------------------------
//2.6 本函数用于获取系统的当前日期(日期格式是"YYYY年MM月DD日")
// ----------------------------------------------------------------------------------
function JGetCurrentCnDate()
{
var iYear,iMonth,iDate,Today,sDate ;
Today = new Date() ;
iYear = Today.getYear() ;
iMonth = Today.getMonth() + 1 ;
iDate = Today.getDate() ;
sDate = String(iYear) ;
if (iMonth < 10)
{
sDate = sDate + "年0" + String(iMonth) ;
}
else
{
sDate = sDate + "年" + String(iMonth) ;
}
if (iDate < 10)
{
sDate = sDate + "月0" + String(iDate) ;
}
else
{
sDate = sDate + "月" + String(iDate) ;
}
sDate = sDate + "日" ;
return sDate ;
}
// ----------------------------------------------------------------------------------
//2.5 本函数用于获取系统的当前时间(时间格式是"HH:MM:SS")
// ----------------------------------------------------------------------------------
function JGetCurrentTime()
{
var iHour,iMin,iSecond,Today,sTime ;
Today = new Date() ;
iHour = Today.getHours() ;
iMin = Today.getMinutes() ;
iSecond = Today.getSeconds() ;
sTime = "" ;
if (iHour < 10)
{ sTime = "0" + String(iHour) ; }
else
{ sTime = String(iHour) ; }
if (iMin < 10)
{ sTime = sTime + ":0" + String(iMin) ; }
else
{ sTime = sTime + ":" + String(iMin) ; }
if (iSecond < 10)
{ sTime = sTime + ":0" + String(iSecond) ; }
else
{ sTime = sTime + ":" + String(iSecond) ; }
return sTime ;
}
// ----------------------------------------------------------------------------
//2.7 本函数用于初始化相关年Select,
// 其中参数 iBefore表示从当前年开始往前的年份数量;
// iAfter 表示从当前年开始往后的年份数量;
//-----------------------------------------------------------------------------
function JInitYearSelect(iBefore,iAfter,selName)
{
var iYear,i,optItem ;
var dDate = new Date()
for (i = selName.length ; i >= 0 ; i --)
{
selName.options[i] = null;
}
iYear = dDate.getYear() ;
for (i = iYear - iBefore; i <= iYear + iAfter; i ++)
{
optItem = document.createElement("OPTION") ;
optItem.text = i ;
optItem.value = i ;
if (i == iYear) { optItem.selected = true ;}
selName.add(optItem);
}
}
// ----------------------------------------------------------------------------
//2.8 本函数用于初始化iYear年iMonth月的日期的Select中的Option,
//-----------------------------------------------------------------------------
function JInitDateSelect(iYear,iMonth,selName)
{
var iDays,i,optItem,sTemp ;
for (i = selName.length ; i >= 0 ; i --)
{
selName.options[i] = null;
}
iDays = JGetDays(parseInt(iYear),parseInt(iMonth)) ;
for (i = 1; i <= iDays ; i ++)
{
optItem = document.createElement("OPTION") ;
if (i >= 10)
{
optItem.text = i ;
optItem.value = i ;
}
else
{
optItem.text = "0" + i.toString() ;
optItem.value = "0" + i.toString() ;
}
if (i == iYear + 1) { optItem.selected = true ;}
selName.add(optItem);
}
}
// ==================================================================================
// 第三部分 输入合法性检查函数
// ==================================================================================
// ----------------------------------------------------------------------------------
// 3.1 本函数用于判断Text文本输入框的值是否在合法字符串sCorrectStr中
// ----------------------------------------------------------------------------------
function JCorrectChar(txtName,sLabel,sCorrectStr)
{
var i,CheckChar ;
for(i = 0 ; i < txtName.value.length; i ++)
{
CheckChar = txtName.value.charAt(i) ;
if (sCorrectStr.indexOf(CheckChar) == -1)
{
strTemp = "“" + sLabel + "”中含有非法字符。" + unescape("nn") ;
strTemp = strTemp + "合法的字符集是:<" + sCorrectStr + ">。" ;
window.alert(strTemp) ;
txtName.select() ;
txtName.focus() ;
return false ;
}
}
return true ;
}
// -----------------------------------------------------------------------------------
// 3.2 本函数用于判断一个文本输入框txtName的值是否为空;
// -----------------------------------------------------------------------------------
function JTextEmpty(txtName,sLabel)
{
var strTemp = "" ;
strTemp = JRTrim(JLTrim(txtName.value)) ;
if (strTemp =="")
{
strTemp = "“" + sLabel + "”不能为空,请输入正确的“" + sLabel + "”。";
window.alert(strTemp) ;
txtName.focus() ;
return true ;
}
return false ;
}
// ==================================================================================
// 第四部分 字符串相关函数
// ==================================================================================
// -----------------------------------------------------------------------------------
//4.1 本函数用于对sString字符串进行前空格截除
// -----------------------------------------------------------------------------------
function JLTrim(sString)
{
var sStr,i,iStart,sResult = "";
sStr = sString.split("");
iStart = -1 ;
for (i = 0 ; i < sStr.length ; i++)
{
if (sStr[i] != " ")
{
iStart = i;
break;
}
}
if (iStart == -1) { return "" ;} //表示sString中的所有字符均是空格,则返回空串
else { return sString.substring(iStart) ;}
}
// -----------------------------------------------------------------------------------
//4.2 本函数用于对sString字符串进行后空格截除
// -----------------------------------------------------------------------------------
function JRTrim(sString)
{
var sStr,i,sResult = "",sTemp = "" ;
// if (sString.length == 0) { return "" ;} // 参数sString是空串
sStr = sString.split("");
for (i = sStr.length - 1 ; i >= 0 ; i --) // 将字符串进行倒序
{
sResult = sResult + sStr[i];
}
sTemp = JLTrim(sResult) ; // 进行字符串前空格截除
if (sTemp == "") { return "" ; }
sStr = sTemp.split("");
sResult = "" ;
for (i = sStr.length - 1 ; i >= 0 ; i--) // 将经处理后的字符串再进行倒序
{
sResult = sResult + sStr[i];
}
return sResult ;
}
// ------------------------------------------------------------
//本函数用于对sString字符串进行前后空格截除
// ------------------------------------------------------------
function JTrim(sString)
{
var strTmp ;
strTmp = JRTrim(JLTrim(sString)) ;
return strTmp ;
}
// -----------------------------------------------------------------------------
//4.3 本函数用于测试字符串sString的长度;
// 注:对本函数来说,1个汉字代表2单位长度;
// -----------------------------------------------------------------------------
function JLen(sString)
{
var sStr,iCount,i,strTemp ;
iCount = 0 ;
sStr = sString.split("");
for (i = 0 ; i < sStr.length ; i ++)
{
strTemp = escape(sStr[i]);
if (strTemp.indexOf("%u",0) == -1) // 表示是汉字
{
iCount = iCount + 1 ;
}
else
{
iCount = iCount + 2 ;
}
}
return iCount ;
}
//-----------------------------------------------------------------------------
//4.4 本函数用于复制字符串sString从iStart开始iCount个长度
// 注 : 在使用本函数时,iStart,iCount长度单位均为英文字符长度;
// 即1个英文字母表示1个单位长度,而1个汉字表示2个单位长度.
// 当复制的最后一个字符只有半个汉字,则被丢弃;
// 当iStart的位置是后半个汉字时,则iStart将会从下一个有效字符开始;iStart从0开始
//-----------------------------------------------------------------------------
function JCopy(sString,iStart,iCount)
{
var sStr,i,j,strTemp = "",sResult = "";
var iResultLen = 0 ;
if (iStart < 0) { iStart = 0 ;}
if (iCount < 0) { iCount = 0 ;}
sStr = sString.split("");
j = 0 ;
for (i = 0 ; i < sStr.length ; i ++)
{
strTemp = escape(sStr[i]) ;
if (j >= iStart) // 进行复制字符串
{
sResult = sResult + sStr[i] ;
if (strTemp.indexOf("%u",0) == -1) // 复制的是非汉字
{
iResultLen = iResultLen + 1 ;
j = j + 1 ;
}
else
{
iResultLen = iResultLen + 2 ;
j = j + 2 ;
}
if (iResultLen < iCount) { continue ;} // 复制的字串不够长,则继续
if (iResultLen > iCount) // 最后一个字符只有半个汉字,则被丢弃;
{
sResult = sResult.substring(0,sResult.length - 1) ;
break ;
}
if (iResultLen = iCount) { break ; }
}
else
{
if (strTemp.indexOf("%u",0) == -1) // 非汉字
{ j = j + 1 ; }
else
{ j = j + 2 ; }
}
}
return sResult ;
}
// --------------------------------------------------------------
// 本函数用于提取[]内的数据
// --------------------------------------------------------------
function JSplitId(sId_Name)
{
var sStr,i,sResult = "" ;
var iStart = 0 ,iEnd = 0 ;
sStr = sId_Name.split("");
for (i = 0; i< sStr.length; i ++)
{
if (sStr[i] == "[")
{
iStart = i + 1;
break ;
}
}
for (i = 0; i< sStr.length; i ++)
{
if (sStr[i] == "]")
{
iEnd = i - 1 ;
break ;
}
}
if ((iStart > 0) && (iEnd > 0) && (iEnd >= iStart))
{
sResult = JCopy(sId_Name,iStart,iEnd - iStart + 1) ;
}
else
{
sResult = "" ;
}
return sResult ;
}
// ================================================================
// 本函数用于自动将输入文本框中的内容转换成大写字符
// ================================================================
function JToUpperCase()
{
if ((window.event.keyCode >= 97) && (window.event.keyCode <= 122))
{
window.event.keyCode = window.event.keyCode - 32 ;
}
}
// ================================================================
// 本函数用于自动将输入文本框中的内容转换成小写字符
// ================================================================
function JToLowerCase()
{
if ((window.event.keyCode >= 65) && (window.event.keyCode <= 90))
{
window.event.keyCode = window.event.keyCode + 32 ;
}
}
// ================================================================
// 本函数用于限制文本输入框中只能输入数字"0"到"9","."
// ================================================================
function JNumberText()
{
if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
|| (window.event.keyCode == 13) || (window.event.keyCode == 46)))
{
window.event.keyCode = 0 ;
}
}
// ============================================================================================
// 本函数用于打开一个居中的窗口,并返回打开的窗口名称,与fucusWin()和closeWin()一起使用效果更佳
// 其中sUrl:相对地址,pw:宽度;ph:高度
// ===========================================================================================
function reOpenWin(sUrl,pw,ph){
var sFeature,sw=pw,sh=ph;
sFeature="width="+sw+",height="+sh+",top="+((window.screen.height-sh)/2-15)+",left="+((window.screen.width-sw)/2-5)+",";
return window.open(sUrl,"",sFeature);
}
// =========================================================================================================
// 本函数用于打开一个居中的窗口并带有竖滚动条,并返回打开的窗口名称,与fucusWin()和closeWin()一起使用效果更佳
// ==========================================================================================================
function reOpenWinSc(sUrl,pw,ph){
var sFeature,sw=pw,sh=ph;
sFeature="width="+sw+",height="+sh+",top="+((window.screen.height-sh)/2-15)+",left="+((window.screen.width-sw)/2-5)+",scrollbars=yes";
return window.open(sUrl,"",sFeature);
}
// =========================================================================================================
// 本函数用于检测输入的内容长度是否大小规定的长度。
// ==========================================================================================================
function checkLen(obj,iLen,desc){
if(JLen(obj.value)>iLen){
alert( "「"+desc + "」长度不能超〖" + iLen +"〗个字节,每个汉字为两个字节!");
obj.select();
return false;
}
return true;
}
// =========================================================================================================
// 本函数用于窗口居中
// ==========================================================================================================
function winCenter(){
window.moveTo((screen.width-document.body.clientWidth-10)/2,(screen.height-document.body.clientHeight-30)/2);
}
// =========================================================================================================
// 检测下拉框必须选择其中一条
// ==========================================================================================================
function selNotEmpty(obj,sLabel){
var strTemp = "" ;
strTemp = JTrim(obj.value) ;
if (strTemp ==""){
strTemp = "“" + sLabel + "”不能为空,请选择正确的“" + sLabel + "”。";
window.alert(strTemp);
obj(0).selected=true ;
return true;
}
return false;
}
// =========================================================================================================
// 焦点定在传入的窗口中
// ==========================================================================================================
function fucusWin(winName){
try{
if(winName!=null){
winName.focus();
var sWinName=(winName.name).toString;
}
}
catch(e){
//alert(e); //忽略错误
}
}
// =========================================================================================================
// 关闭窗口
// ==========================================================================================================
function closeWin(winName){
try{
if(winName!=null){
winName.close();
}
}
catch(e){
}
}
// =========================================================================================================
// 限制输入回车键
// ==========================================================================================================
function JNotInputEnter(){
if(window.event.keyCode=13) window.event.keyCode=0;
}
// ================================================================
// 本函数用于限制文本输入框中只能输入整型数据[0-9]
// ================================================================
function JIntNumText(){
if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
|| (window.event.keyCode == 13)))
{
window.event.keyCode = 0 ;
}
}
// ================================================================
// 本函数用于限制文本输入框中只能输入字母[A-Za-z]
// ================================================================
function JInputLetter(){
if ( !(((window.event.keyCode >= 65) && (window.event.keyCode <= 90))
|| ((window.event.keyCode >= 97) && (window.event.keyCode <= 122))
|| (window.event.keyCode == 13)))
{
window.event.keyCode = 0 ;
}
}
// ================================================================
// 本函数用于限制文本输入框中只能输入电话内容[0-9]、-、(),
// ================================================================
function JInputTel(){
if (!(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
|| (window.event.keyCode == 45)|| (window.event.keyCode == 13)
|| (window.event.keyCode == 40)|| (window.event.keyCode == 41)))
{
window.event.keyCode = 0 ;
}
}
// ================================================================
// 本函数用于限制文本输入框中只能输入日期内容[0-9]、-、/,
// ================================================================
function JInputDate(){
if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
|| (window.event.keyCode == 45)
|| (window.event.keyCode == 47)|| (window.event.keyCode == 13)))
{
window.event.keyCode = 0 ;
}
}
// ================================================================
// 本函数用于判断传的文件框的内容是否为整数
// ================================================================
function JIsIntNum(Oject,sLabel){
var vNum = /^[d]+$/;
if(!vNum.test(Oject.value)){
var strTemp = "“" + sLabel + "”必须为整数,请输入正确的“" + sLabel + "”。";
alert(strTemp);
Oject.value=0;
Oject.select();
return true;
}
return false;
}
function reOpenWin(sUrl,pw,ph){
var sFeature,sw=pw,sh=ph;
sFeature="width="+sw+",height="+sh+",top="+((window.screen.height-sh)/2-15)+",left="+((window.screen.width-sw)/2-5)+",";
return window.open(sUrl,"",sFeature);
}
function reOpenWinSc(sUrl,pw,ph){
var sFeature,sw=pw,sh=ph;
sFeature="width="+sw+",height="+sh+",top="+((window.screen.height-sh)/2-15)+",left="+((window.screen.width-sw)/2-5)+",scrollbars=yes";
return window.open(sUrl,"",sFeature);
}
相关文章
Javascript实现CheckBox的全选与取消全选的代码
在批量处理列表数据时,往往会用到 CheckBox 的全选与取消全选,虽然她的实现原理很简单,但是对新手来说还是有些难度。2010-07-07
最新评论