常用js脚本
程序员文章站
2023-11-22 09:15:04
这些都是工作的时候用到的,希望以后都可以用到 // “”:,。!; typeof(objectname) == ''undefine...
这些都是工作的时候用到的,希望以后都可以用到
// “”:,。!; 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);
}