位置:海鸟网 > IT > JavaScript >

收集整理些有用的JAVASCRIPT小知识

前段时间一直在做一个人才网站,里面用到了大量的Javascript代码,虽说很多都是从百度和别的网站上拷下来的,不过要把它们正确的用到自己网站上也是花费了我不少功夫的。其中有几段代码,是我找了n久也找不到完整的合适的,于是自己编出来的。现在就把它们贴出来,希望能帮到像我一样菜的鸟!

一、身份证验证

很多网页上都有身份证验证,不过大多是vbscript,javascript的n少。而且还不全面。身份证号码的组成结构,就不用我赘述了吧,在百度上一搜一大把的。

就说怎么验证得了:身份证验证首先是要验证字数、以及除了末尾能用字母外其它的都应该是数字。其次就是两点最重要的,出生年月日和户口所在地。

以下是引用片段:
function isValidDate( year, month, day )
{
   year  = parseInt(year,10);
   month = parseInt(month,10);
   day   = parseInt(day,10);
   if (( month==4) || (month==6) || (month==9) || (month==11) )
   { if (( day < 1) || (day > 30) )
     { alert( "日期在1 - 30之间" );
       return (false);
     }
   }
   else
   { if ( month!=2 )
     { if ( (day < 1) || (day > 31 ))
       {  alert( "日期在1 - 31之间" );
          return (false);
       }
     }
     else
     { // month == 2
       if ( ( year % 100 ) != 0 && (year % 4 == 0) || ( year % 100 ) == 0 && ( year % 400) == 0 )
       { if ( day > 29 )
         {  alert( "日期在1 - 29之间" );
            return (false);
         }
       }
       else
       { if ( day > 28 )
         { alert( "日期在1 - 28之间" );
           return (false);
         }
       }
     }
   }
 return (true);
}
function isIdCardNo(s)
{
 if ((s.length <15)||(s.length ==16)||(s.length ==17)||(s.length >18)){
   window.alert("身份证位数不正确!");
   return false;
  }
 
    slen=s.length-1;//身份证除最后一位外,必须为数字!
 for (i=0; i<slen; i++)
 {
  cc = s.charAt(i);
  if (cc <"0" || cc >"9")
  {
   return false;
  }
 }
 //提取年月日
 var strYear = parseInt(s.substring(6,10))
 var strMonth = parseInt(s.substring(10,12))
 var strDay =  parseInt(s.substring(12,14))
// Form1.year的代码根据个人情况变动
var vYear=parseInt(document.Form1.year.options[document.Form1.year.selectedIndex].text)
 var vMonth=parseInt(document.Form1.month.options[document.Form1.month.selectedIndex].text)
 var vDay=parseInt(document.Form1.day.options[document.Form1.day.selectedIndex].text)
 //判断输入的出生年月日是否是正确的日期
 if(!isValidDate(strYear,strMonth,strDay))
 {
  window.alert("请检查身份证是否输入正确!");
   return false;
 }
//判断是否与出生年月日吻合
 if((strYear!=vYear)||(strMonth!=vMonth)||(strDay!=vDay))
    {
  window.alert("身份证号与输入的出生年月日不符!");
   return false;
 }
 //document.Form1.ceshi.value=strMonth
 //document.Form1.ceshi2.value=vMonth
 return true;
}

因为我不知道身份证上户口所在地的值是用什么规则规定的,而且也没必要验证的那么详细。就没有做户口验证。

不过我觉得,应该是大同小异的吧,只要判断form里户口选择select的值和身份证里户口对应的位数是否相等就ok了。

s.substring(6,10)就是用来截取字段的。从第六位到第十位。

二、排序的小代码

   做到排序时,我第一个想到的笨方法是手动输入,后来考虑到分类可能会很多,于是就想到了用过的那种点击向上、向下按钮就自动向上和向下的东东,例如qq空间里头播放器排序。

   于是上网搜了一下,结果很遗憾,调数据库的没有。没办法只得自己研究了一个。用起来也还行,自我感觉差不了多少。

代码如下:

以下是引用片段:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="../conn.asp"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Untitled Document</title>
<STYLE type=text/css>TD {
 FONT-SIZE: 12px
}
SELECT {
 FONT-SIZE: 12px
}
INPUT {
 FONT-SIZE: 12px
}
A {
 TEXT-DECORATION: none
}
A:hover {
 COLOR: #c90000; TEXT-DECORATION: none
}
</STYLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
//window.onload = initPage;
//function initPage()
//{
 //   btnPutUp.onclick    = putUp;
 //   btnPutDown.onclick    = putDown;
 //   btnGoUp.onclick    = goUp;
  //  btnGoDown.onclick    = goDown;
/