返回列表 发帖

[转载] 一些JS代码。

  1. <script language="JavaScript">
  2. <!--

  3.   
  4.   function newWindow(strUrl, strName, nWidth, nHeight)
  5.   {
  6.       var  strFeature ;

  7.       strFeature = "HEIGHT=" + nHeight + ", WIDTH=" + nWidth ;
  8.       strFeature = strFeature + " left=0 top=0 toolbar=no,scrollbars=yes,menubar=no,resizable=yes,directories=no" ;
  9.       objWin = window.open(strUrl, strName, strFeature) ;
  10.       objWin.focus() ;
  11.   }
  12.   
  13.   
  14.   function openWindow(strUrl, strName, nLeft, nTop, nWidth, nHeight)
  15.   {
  16.       var  strFeature ;

  17.       strFeature = "HEIGHT=" + nHeight + ", WIDTH=" + nWidth + " LEFT" + nLeft + " TOP=" + nTop;
  18.       strFeature = strFeature + " toolbar=yes,scrollbars=yes,menubar=no,resizable=yes,directories=no" ;
  19.       objWin = window.open(strUrl, strName, strFeature) ;
  20.       objWin.focus() ;
  21.   }
  22.   
  23.   
  24.   
  25.   function showAlert(strMsg)
  26.   {
  27.       window.alert(strMsg) ;
  28.   }

  29.   
  30.   function doConfirm(strMsg)
  31.   {
  32.       return window.confirm(strMsg) ;
  33.   }

  34.   
  35.   function setFocus(objControl)
  36.   {
  37.       var objCtrl = eval(objControl) ;
  38.       window.focus();
  39.       objCtrl.focus() ;
  40.   }

  41.   
  42.   function goToUrl(objContain, strUrl)
  43.   {
  44.       objContain.location = strUrl ;
  45.   }

  46.   
  47.   function goToUrlInFrame(strFrameName, strUrl)
  48.   {
  49.       parent.frames[strFrameName].location = strUrl ;
  50.   }

  51.   
  52.   function isTextFieldNull(txtField)
  53.   {
  54.       if ((txtField.value == null) || (txtField.value == ""))
  55.          return true ;
  56.       else
  57.          return false ;
  58.   }

  59.   
  60.   function verifyTextField(txtField, strAlert)
  61.   {
  62.       var bNull = false;

  63.       bNull = isTextFieldNull(txtField) ;
  64.       if (bNull == true)
  65.       {
  66.           showAlert(strAlert) ;
  67.           setFocus(txtField)  ;
  68.       }
  69.       return bNull ;
  70.   }

  71.   
  72.   function getSelCount(objForm,  strName)
  73.   {
  74.       var nCount = 0 ;
  75.           var nLen   = 0 ;
  76.           var nIndex     ;
  77.           var objElement ;

  78.           nLen = objForm.elements.length ;
  79.           for (nIndex=0; nIndex<nLen; nIndex++)
  80.           {
  81.               objElement = objForm.elements[nIndex] ;
  82.                   if ((objElement.name == strName) && (objElement.checked == true))
  83.                       nCount=nCount+1 ;
  84.           }

  85.           return nCount ;
  86.   }

  87.   
  88.   function isInteger(strValue)
  89.   {
  90.       var  nValue ;

  91.       //对输入参数为null的处理
  92.       if (strValue == null)
  93.          return false ;

  94.       //对其他情况的处理
  95.       nValue = parseInt(strValue) ;
  96.       if ( isNaN(nValue) )
  97.          return false ;

  98.       return true ;
  99.   }

  100.   
  101.   function isFloat(strValue)
  102.   {
  103.       var  fValue ;

  104.       //对输入参数为null的处理
  105.       if (strValue == null)
  106.          return false ;

  107.       //对其他情况的处理
  108.       fValue = parseFloat(strValue) ;
  109.       if ( isNaN(fValue) )
  110.          return false ;

  111.       return true ;
  112.   }

  113.    
  114.   function  compInteger(strValue1, strValue2)
  115.   {
  116.       var  nValue1, nValue2 ;

  117.       //判断第一个参数的有效性
  118.       if (isInteger(strValue1) == false)
  119.           return -1 ;

  120.       //判断第二个参数的有效性
  121.       if (isInteger(strValue2) == false)
  122.           return -2 ;

  123.       //转换后比较
  124.       nValue1 = parseInt(strValue1) ;
  125.       nValue2 = parseInt(strValue2) ;

  126.       if (nValue1 > nValue2)
  127.           return 1 ;

  128.       if (nValue1 == nValue2)
  129.           return 0 ;

  130.       if (nValue1 < nValue2)
  131.           return 2 ;
  132.   }

  133.   
  134.   function  compFloat(strValue1, strValue2)
  135.   {
  136.       var  fValue1, fValue2 ;

  137.       //判断第一个参数的有效性
  138.       if (isFloat(strValue1) == false)
  139.           return -1 ;

  140.       //判断第二个参数的有效性
  141.       if (isFloat(strValue2) == false)
  142.           return -2 ;

  143.       //转换后比较
  144.       fValue1 = parseFloat(strValue1) ;
  145.       fValue2 = parseFloat(strValue2) ;

  146.       if (fValue1 > fValue2)
  147.           return 1 ;

  148.       if (fValue1 == fValue2)
  149.           return 0 ;

  150.       if (fValue1 < fValue2)
  151.           return 2 ;
  152.   }

  153. //函数名:fucCheckDate() (YYYY-MM-DD)
  154. //功能介绍:检查是否为日期
  155. //参数说明:要检查的字符串
  156. //返回值:0:不是日期 1:是日期
  157.   function fucCheckDate(strDate)
  158.   {
  159.         var  nLen, nIdx ;
  160.           var  csplit, cflag ;
  161.           var  arrSplit = new Array('-', '.', '/') ;
  162.           var  strYear, strMonth, strDay, strTmp ;
  163.          
  164.           //如果日期为null,认为是日期
  165.           if (strDate == null)  return 1 ;
  166.          
  167.           //如果长度不满足:8 -- 10,为非法日期
  168.           nLen = strDate.length ;
  169.           if (nLen < 8 || nLen > 10) return 0 ;
  170.          
  171.           //判断是否存在分割符,并记录分割符
  172.           cflag = "" ;
  173.           for (nIdx=0; nIdx<arrSplit.length; nIdx++)
  174.           {
  175.               csplit = arrSplit[nIdx] ;
  176.                   if (strDate.indexOf(csplit, 0) >= 0)
  177.                   {
  178.                       cflag = csplit ;
  179.                           break ;
  180.                   }
  181.           }
  182.                           
  183.           if ( cflag =="" ) //对没有分割符的处理
  184.           {
  185.                //如果长度<>8,为非法日期
  186.                    if (nLen != 8)
  187.                        return 0 ;
  188.                            
  189.                //截取日期中的年、月、日
  190.                strYear  = strDate.substr(0,4) ;
  191.                    strMonth = strDate.substr(4,2) ;
  192.                    strDay   = strDate.substr(6,2) ;
  193.           }
  194.           else                    //对存在分割符的处理
  195.           {
  196.                 //截取日期中的年、月、日
  197.                     strTmp = strDate ;  
  198.                     nIdx = strTmp.indexOf(cflag, 0) ;
  199.                     strYear = strTmp.substr(0,nIdx) ;
  200.                     strTmp  = strTmp.substr(nIdx+1, strTmp.length - nIdx - 1) ;
  201.                     
  202.                     nIdx     = strTmp.indexOf(cflag, 0) ;
  203.                     strMonth = strTmp.substr(0, nIdx) ;
  204.                     strDay   = strTmp.substr(nIdx+1, strTmp.length-nIdx-1) ;
  205.                     
  206.                     if (strMonth.length < 2)
  207.                         strMonth = "0" + strMonth ;
  208.                     
  209.                     if (strDay.length < 2)
  210.                         strDay = "0" + strDay ;
  211.           }
  212.          
  213.           //判断年、月、日的合法性
  214.           if (strYear  < '1900' || strYear > '9999' || strYear.length != 4)
  215.               return 0 ;
  216.           if (strMonth < '00' || strMonth > '12' || strMonth.length != 2)
  217.               return 0 ;
  218.           if (strDay   < '00' || strDay > '31' || strDay.length != 2)
  219.               return 0 ;
  220.       
  221.           //缺省为合法日期
  222.           return 1 ;
  223.   }

  224. //函数名:fucCheckNUM()
  225. //功能介绍:检查是否为数字
  226. //参数说明:要检查的数字
  227. //返回值:1为是数字,0为不是数字
  228. function fucCheckNUM(NUM)
  229. {
  230.         var i,j,strTemp;
  231.         strTemp="0123456789.";
  232.         if ( NUM.length == 0) return 0;
  233.         for (i=0;i<NUM.length;i++)
  234.         {
  235.                 j = strTemp.indexOf(NUM.charAt(i));
  236.                 if (j==-1)
  237.                 {
  238.                         //说明有字符不是数字

  239.                         return 0;
  240.                 }
  241.         }
  242.         //说明是数字
  243.         return 1;
  244. }

  245. /*************************************************************************
  246. **  目的:
  247. **       判断身份证件号码是否有效
  248. **  参数:
  249. **      pszId : 表示身份证号码的字符串
  250. **  返回值:
  251. **      0  : 有效
  252. **      -1 : 无效
  253. *************************************************************************/
  254. function isPersonIdValid(pszId)
  255. {
  256.     var  nLen, nIndex, nRet ;
  257.     var  strTmp ;
  258.    
  259.     nRet = 0 ;
  260.    
  261.     /*判断身份证的长度是否为18或15位*/
  262.     nLen = pszId.length ;
  263.     if ((nLen != 15) && (nLen != 18))
  264.        return (-1) ;
  265.    
  266.     /*如果长度为15位,判断其各位是否为数字*/      
  267.     if (nLen == 15)
  268.     {
  269.         for (nIndex=0; nIndex<nLen; nIndex++)
  270.         {
  271.             strTmp = pszId.charAt(nIndex) ;
  272.             if (( strTmp  < '0') || (strTmp > '9'))
  273.             {
  274.                 nRet = -1 ;
  275.                 break ;
  276.             }
  277.         }
  278.     }
  279.    
  280.     return (nRet) ;
  281. }

  282. /*************************************************************************
  283. **  目的:
  284. **       对身份证件号码进行15位到18位的转换
  285. **  参数:
  286. **      pszId15 : 15位的身份证号码
  287. **  返回值:
  288. **      转换成18位后的身份证号码
  289. *************************************************************************/
  290. function convPersonId15To18(pszId15)
  291. {
  292.     var  nIndex, nLen ;
  293.     var  nSum ;   
  294.     var  pszId18 ;
  295.    
  296.    
  297.     var  nArrPower  = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2) ;
  298.     var  chArrCheck = new Array('1','0','X','9','8','7','6','5','4','3', '2')  ;

  299.     /*如果已经为18位,直接返回*/
  300.     nLen = pszId15.length;
  301.     if (nLen == 18)
  302.     {
  303.         pszId18 = pszId15 ;
  304.         return pszId18  ;
  305.     }
  306.    
  307.     /*如果不是15位,返回错误*/
  308.     if (nLen != 15)
  309.     {
  310.         pszId18 = pszId15 ;
  311.         return pszId18  ;
  312.     }

  313.     /*准备数据*/
  314.     pszId18 = pszId15.substr(0,6) ;
  315.     pszId18 = pszId18 + "19" ;
  316.     pszId18 = pszId18 + pszId15.substr(6,9) ;
  317.      
  318.     /*计算最后一位*/
  319.     nSum = 0 ;
  320.     for (nIndex=0; nIndex<17; nIndex++)
  321.     {
  322.         nSum = nSum + ( parseInt(pszId18.charAt(nIndex)) * nArrPower[nIndex] ) ;
  323.     }
  324.     nIndex = nSum - (nSum / 11*11) ;
  325.    
  326.     pszId18 = pszId18 + chArrCheck[nIndex] ;

  327.     return pszId18 ;
  328. }


  329.   function  changeFocus_onkeyup()
  330.   {
  331.     var  key ;
  332.         
  333.     key = window.event.keyCode ;
  334.     if (key == 0xD)
  335.     {
  336.             if ( window.event.srcElement.type == "text"          ||
  337.                  window.event.srcElement.type == "checkbox"      ||
  338.                  window.event.srcElement.type == "radio"         ||
  339.                  window.event.srcElement.type == "file"          ||
  340.                  window.event.srcElement.type == "select-one"    ||
  341.                  window.event.srcElement.type == "select-multiple"
  342.                )
  343.              window.event.keyCode = 9 ;
  344.     }
  345.   }
  346.   function check(field,ncount)
  347.   {
  348.             var regC = /[^ -~]+/g;
  349.             var regE = /\D+/g;
  350.           var str = field.value;
  351.           var ncount2=ncount*2;
  352.          
  353.          
  354.          
  355.           if (regC.test(str)){
  356.                 field.value = field.value.substr(0,ncount);
  357.           }
  358.          
  359.           if(regE.test(str)){
  360.                 field.value = field.value.substr(0,ncount2);
  361.           }
  362.   }        
  363.   //取得str长度
  364.   function getStringLength(str)
  365.   {
  366.     var num=0;
  367.     if (str!="")
  368.     {
  369.       var i;
  370.       var s;
  371.       for(i=0;i<str.length;i++)
  372.       {
  373.         s=str.charCodeAt(i);
  374.         if(s-128<0) num=num+1;
  375.         else num=num+2;
  376.       }
  377.     }
  378.     return num;
  379.   }


  380. //函数名:fucCheckIP()
  381. //功能介绍:检查是否为IP
  382. //参数说明:要检查的字符串
  383. //返回值:0:不是 1:是
  384. function fucCheckIP(a)
  385. {
  386.         var va=a;
  387.         

  388.         //中间有空格
  389.         if (a.indexOf(' ')!=-1)
  390.         {
  391.                 alert(va+":IP中有空格");
  392.                 return 0;
  393.         }               
  394.         if (a.indexOf(".")==-1)
  395.         {
  396.                 alert(va+":IP格式错误(***.***.***.***)");
  397.                 return 0;
  398.         }
  399.         if(0 == a.indexOf("."))
  400.         {        alert(va+":IP格式错误(***.***.***.***)");
  401.                 return 0;
  402.         }


  403.         //判断a 中的“.”是否多于3个
  404.         var count = 0;
  405.         var aa = a;
  406.         for (var i=0;i<a.length;i++)
  407.         {
  408.                 var j = aa.indexOf(".");
  409.                 if (j!=-1)
  410.                 {
  411.                         count = count+1;
  412.                         //alert("count: "+count);                        
  413.                 }
  414.                 aa = aa.substring(j+1,a.length);               
  415.         }        
  416.         if(count>3)
  417.         {        alert(va+":IP格式错误(***.***.***.***)");
  418.                 return 0;
  419.         }
  420.         if(count<3)
  421.         {        alert(va+":IP格式错误(***.***.***.***)");
  422.                 return 0;
  423.         }



  424.         var L=a.length;
  425.         for(var j=0;j<4;j++)
  426.         {
  427.                 //alert("j: "+j)
  428.                 var temp = a.indexOf('.');

  429.                 if (temp > -1)
  430.                 {        
  431.                         var aSub = a.substring(0,temp);
  432.                         //alert("aSub:  "+aSub);               
  433.                         if(aSub>255)
  434.                         {        alert(va+":数字取值范围为0~255");
  435.                                 return 0;
  436.                         }        
  437.                         if(aSub<0)
  438.                         {        alert(va+":数字取值范围为0~255");
  439.                                 return 0;
  440.                         }
  441.                         if(0 == fucCheckNUM(aSub))
  442.                         {        
  443.                                 alert(va+":IP中有非数字字符");
  444.                                 return 0;
  445.                         }
  446.                 }
  447.                 else
  448.                 {
  449.                         var aSub = a;
  450.                         //alert("--aSub:  "+aSub);
  451.                         if(aSub>255)
  452.                         {        alert(va+":数字取值范围为0~255");
  453.                                 return 0;
  454.                         }        
  455.                         if(aSub<0)
  456.                         {        alert(va+":数字取值范围为0~255");
  457.                                 return 0;
  458.                         }
  459.                         if(0 == fucCheckNUM(aSub))
  460.                         {        alert(va+":IP中有非数字字符");
  461.                                 return 0;
  462.                         }
  463.                 }
  464.                 a = a.substring(temp+1,L);        
  465.         }
  466.         return 1;
  467. }


  468. function checkAreaIP(formname,ctrlname)
  469. {
  470. var obj=eval("document."+formname+"."+ctrlname);
  471. var str=obj.value;
  472. var index;


  473. while(1)
  474. {
  475. index=str.indexOf("\n");
  476. if(-1!=index)
  477. {
  478.          var tmp = str.substring(0,index-1);

  479.          str=str.substring(index+1,str.length);
  480.          tmp=tmp.trim();

  481.          if(tmp=="")
  482.                 continue;

  483.           if(!checkIP(tmp))
  484.                  return false;


  485. }
  486.   else
  487.   {
  488.           var tmp = str.substring(0,str.length);

  489.          tmp=tmp.trim();

  490.          if(tmp=="")
  491.                  return true;

  492.          if(!checkIP(tmp))
  493.                  return false;

  494.         break;
  495.   }


  496. }
  497. //alert(fucCheckIP(obj.value));
  498.         return true;
  499. }


  500. function checkIP(ip)
  501. {

  502. var str=ip;
  503. var index=str.indexOf("-");
  504. if(-1!=index)
  505. {
  506.          var beginip= str.substring(0,index);

  507.          var engip=str.substring(index+1,str.length);


  508.           if((1!=fucCheckIP(beginip))||(1!=fucCheckIP(engip)))
  509.                  return false;
  510.                  else
  511.                 {
  512.                         //判断起始ip是否小于等于终止ip
  513.                         if(1==compareIP(beginip,engip))
  514.                                 return true;
  515.                         else
  516.                            return false;

  517.                 }
  518.         }
  519.         else
  520.   {

  521.           if(fucCheckIP(ip))
  522.                 return true;
  523.         else
  524.                  return false;


  525.   }

  526. }

  527. function compareIP(beginip,endip)
  528. {

  529. var bgn=beginip;
  530. var end=endip;
  531. if(bgn==end)
  532.         return true;


  533. //分解每个域作判断
  534. for(var i=0;i<4;i++)
  535. {
  536.         var index1=bgn.indexOf(".");
  537.         var index2=end.indexOf(".");
  538.        var  tmp1;
  539.         var  tmp2;
  540.         if(-1!=index1)
  541.         {
  542.          tmp1 = bgn.substring(0,index1);
  543.          tmp2 = end.substring(0,index2);

  544.          bgn=bgn.substring(index1+1,bgn.length);
  545.          end=end.substring(index2+1,end.length);
  546.         


  547.         }
  548.         else
  549.         {
  550.                  tmp1=bgn.substring(0,bgn.length);
  551.                   tmp2=end.substring(0,end.length);

  552.         }

  553.         alert("tmp1:"+tmp1+"tmp2:"+tmp2+"compare"+compInteger(tmp1,tmp2));
  554.         if(1==compInteger(tmp1,tmp2))
  555.         {
  556.                 alert(beginip+"-"+endip+":起始ip要小于等于终止ip");
  557.                 return false
  558.         }
  559. }
  560. return true;

  561. }


  562. function LTrim(str)

  563. {

  564.     var whitespace = new String(" \t\n\r");

  565.     var s = new String(str);

  566.    

  567.     if (whitespace.indexOf(s.charAt(0)) != -1)

  568.     {

  569.         var j=0, i = s.length;

  570.         while (j < i && whitespace.indexOf(s.charAt(j)) != -1)

  571.         {

  572.             j++;

  573.         }

  574.         s = s.substring(j, i);

  575.     }

  576.     return s;

  577. }


  578. function RTrim(str)

  579. {

  580.     var whitespace = new String(" \t\n\r");

  581.     var s = new String(str);



  582.     if (whitespace.indexOf(s.charAt(s.length-1)) != -1)

  583.     {

  584.         var i = s.length - 1;

  585.         while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)

  586.         {

  587.             i--;

  588.         }

  589.         s = s.substring(0, i+1);

  590.     }

  591.     return s;

  592. }




  593. // create the prototype on the String object

  594. String.prototype.trim = function() {

  595. // skip leading and trailing whitespace
  596. // and return everything in between
  597.   //var x=this;
  598. // x=x.replace(/^\s*(.*)/, "$1");
  599. // x=x.replace(/(.*?)\s*$/, "$1");
  600. //  return x;


  601.     return RTrim(LTrim(str));


  602. }


  603.   
  604. //-->
  605. </script>
复制代码
天行健,君子以自强不息
地势坤,君子以厚德载物
黑色海岸线欢迎您

QQ群:7212260
致力于探索WEB技术精髓:http://www.bitechcn.com
点这里加我!

来看下,不错希望再接再厉
总是来的太充忙,走得太急
在别人还在为明天而发愁的时候
我举起手中的笔,为自己的葬礼写下辉煌的悼词
剩下的日子,便是将这字句变成生活

TOP

返回列表 回复 发帖