常用js脚本

  这些都是工作的时候用到的,希望以后都可以用到

  // “”:,。!; 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);

  }