編程(Programming)是編定程序的中文簡稱,就是讓計(jì)算機(jī)代碼解決某個(gè)問題,對(duì)某個(gè)計(jì)算體系規(guī)定一定的運(yùn)算方式,使計(jì)算體系按照該計(jì)算方式運(yùn)行,并最終得到相應(yīng)結(jié)果的過程。為了使計(jì)算機(jī)能夠理解(understand)人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計(jì)算機(jī)能夠理解的形式告訴計(jì)算機(jī),使得計(jì)算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計(jì)算體系之間交流的過程就是編程。 【實(shí)例名稱】 通過JS對(duì)身份證號(hào)驗(yàn)證 【實(shí)例描述】 驗(yàn)證身份證號(hào)的主要條件是號(hào)碼必須全部由數(shù)字組成且長度為15或18位。為了保證身份證號(hào)的正確性,還需要判斷其中的年份和日期是否正確。本例通過一個(gè)正則表達(dá)式實(shí)現(xiàn)對(duì)身份證號(hào)的驗(yàn)證。 【實(shí)例代碼】 <html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>標(biāo)題頁-本站(www.xue51.com)</title>
<SCRIPT LANGUAGE="JavaScript">
function isCardNo(num)
{
if (isNaN(num)) {alert("輸入的不全是數(shù)字!"); return false;}
var len = num.length, re;
if (len == 15) //15位身份證的判斷
re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
else if (len == 18)//18位身份證的判斷
re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
else {alert("輸入的數(shù)字位數(shù)不對(duì)!"); return false;}
var a = num.match(re);//判斷是否有符合條件的表達(dá)式
if (a != null)
{
if (len==15)
{//對(duì)15位身份證中日期的判斷
var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
else
{//對(duì)18位身份證中日期的判斷
var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
if (!B) {alert("輸入的身份證號(hào) "+ a[0] +" 里出生日期不對(duì)!"); return false;}
}
return true;
}
</script>
</head>
<body>
<input type=text name="txt1" value="1110120780423003">
<input type=button value="判斷身份證號(hào)"
onClick="javascript:alert(isCardNo(txt1.value))">
</body>
</html>
【運(yùn)行效果】  【難點(diǎn)剖析】 本例的重點(diǎn)是驗(yàn)證身份證號(hào)的條件。長度必須滿足15或18位。在滿足長度的條件后,再判斷出生年月日是否符合日期規(guī)范。“match”方法判斷是否能找到符合條件的匹配,沒有匹配則返回“null”。 【源碼下載】 為了JS代碼的準(zhǔn)確性,請(qǐng)點(diǎn)擊:通過JS對(duì)身份證號(hào)驗(yàn)證 進(jìn)行本實(shí)例源碼下載
使用編程語言寫的程序,由于每條指令都對(duì)應(yīng)計(jì)算機(jī)一個(gè)特定的基本動(dòng)作,所以程序占用內(nèi)存少、執(zhí)行效率高。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!