身份證的驗證

var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ]; // 加權因子
var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]; // 身份證驗證位值.10代表X
function checkIdcard(idCard) {
idCard = trim(idCard);//去掉字符串頭尾空格
if (idCard.length == 15) {
return isValidityBrithBy15IdCard(idCard); //進行15位身份證的驗證
} else if (idCard.length == 18) {
var a_idCard = idCard.split(""); // 得到身份證數組
if(isValidityBrithBy18IdCard(idCard)&&isTrueValidateCodeBy18IdCard(a_idCard)){ //進行18位身份證的基本驗證和第18位的驗證
return true;
}else {
return false;
}
} else {
return false;
}
}
/**
* 判斷身份證號碼為18位時最后的驗證位是否正確
* @param a_idCard 身份證號碼數組
* @return
*/
function isTrueValidateCodeBy18IdCard(a_idCard) {
var sum = 0; // 聲明加權求和變量
if (a_idCard[17].toLowerCase() == 'x') {
a_idCard[17] = 10; // 將最后位為x的驗證碼替換為10方便后續操作
}
for ( var i = 0; i < 17; i++) {
sum += Wi[i] * a_idCard[i]; // 加權求和
}
valCodePosition = sum % 11; // 得到驗證碼所位置
if (a_idCard[17] == ValideCode[valCodePosition]) {
return true;
} else {
return false;
}
}
/**
* 驗證18位數身份證號碼中的生日是否是有效生日
* @param idCard 18位書身份證字符串
* @return
*/
function isValidityBrithBy18IdCard(idCard18){
var year = idCard18.substring(6,10);
var month = idCard18.substring(10,12);
var day = idCard18.substring(12,14);
var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
// 這里用getFullYear()獲取年份,避免千年蟲問題
if(temp_date.getFullYear()!=parseFloat(year)
||temp_date.getMonth()!=parseFloat(month)-1
||temp_date.getDate()!=parseFloat(day)){
return false;
}else{
return true;
}
}
/**
* 驗證15位數身份證號碼中的生日是否是有效生日
* @param idCard15 15位書身份證字符串
* @return
*/
function isValidityBrithBy15IdCard(idCard15){
var year = idCard15.substring(6,8);
var month = idCard15.substring(8,10);
var day = idCard15.substring(10,12);
var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
// 對于老身份證中的你年齡則不需考慮千年蟲問題而使用getYear()方法
if(temp_date.getYear()!=parseFloat(year)
||temp_date.getMonth()!=parseFloat(month)-1
||temp_date.getDate()!=parseFloat(day)){
return false;
}else{
return true;
}
}
//去掉字符串頭尾空格
function trim(str) {
return str.replace(/(^\s*)|(\s*$)/g, "");
}

轉載于:https://www.cnblogs.com/ljc7878/p/7477552.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/251903.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/251903.shtml
英文地址,請注明出處:http://en.pswp.cn/news/251903.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

人工智能實戰小程序之語音_前端開發

1. 人工智能實戰小程序之準備工作 2. 人工智能實戰小程序之語音_前端開發 今天這部分主要講小程序前端功能的開發由于我偏后端&#xff0c;css是我的弱項&#xff0c;可能很多人和我一樣開發小程序不知道如何下手&#xff0c;希望本篇文章對你有幫助我的學習路線是&#xff1a;…

當TFS/VSTS遇上Power BI

引言眾所周知&#xff0c;要對TFS進行深入的圖表分析&#xff0c;往往需要依賴于SQL Server Analysis Service和SQL Server Reporting Service。雖然隨著TFS對敏捷項目的支持&#xff0c;內置了諸如累積流圖、燃盡圖等快捷圖表&#xff1b;并且在最新的版本中還可以在儀表盤和查…

HashMap深度解析:一文讓你徹底了解HashMap

寫在前面HashMap是Map族中最為常用的一種&#xff0c;也是 Java Collection Framework 的重要成員。本文首先給出了 HashMap 的實質并概述了其與 Map、HashSet 的關系&#xff0c;緊接著給出了 HashMap 在 JDK 中的定義&#xff0c;并結合源碼分析了其四種構造方式。最后&#…

Bzoj3628: [JLOI2014]天天酷跑

3628: [JLOI2014]天天酷跑 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 121 Solved: 44[Submit][Status][Discuss]Description 在游戲天天酷跑中&#xff0c;最爽的應該是超級獎勵模式了吧&#xff0c;沒有一切障礙&#xff0c;可以盡情的吃金幣&#xff0c;現在請你控制…

python_線程、進程和協程

線程 Threading用于提供線程相關的操作&#xff0c;線程是應用程序中工作的最小單元。 1 #!/usr/bin/env python2 #codingutf-83 __author__ yinjia4 5 6 import threading,time7 8 def show(arg):9 time.sleep(2) 10 print(線程: str(arg)) 11 12 for i in range(…

AppDelegate瘦身之服務化

有沒有覺得你的AppDelegate雜亂無章&#xff1f;代碼幾百行上千行&#xff1f;集成了無數的功能&#xff0c;如推送、埋點、日志統計、Crash統計等等&#xff0c;感覺AppDelegate無所不能。 來一段一般的AppDelegate代碼&#xff0c;來自網上一篇文章&#xff1a; UIApplicatio…

第四章:手機平板要兼顧-探究碎片

碎片是什么&#xff1f; 碎片&#xff08;Fragment&#xff09;是一種可以嵌入在活動&#xff08;Activity&#xff09;中的 UI 片段&#xff0c;它能讓程序更加合理和充分的利用大屏幕的空間&#xff0c;因而在平板上應用的非常廣泛。 碎片的使用方式 靜態嵌入動態加載碎片和活…

Android Studio 3.4增可視化資源管理工具 可管理和預覽項目資源

經過6個月的開發時間&#xff0c;網絡大廠17日發布了最新版的App開發IDE Android Studio 3.4&#xff0c;現在就能夠下載使用&#xff0c;除了有超過300個錯誤修護和穩定度增強之外&#xff0c;在開發、建置和測試App階段&#xff0c;都推出了一些小的新功能和工具&#xff0c;…

Python安裝、使用MySQL數據庫

本機安裝的python版本為Python 2.7(win32 bit) 從http://www.codegood.com/archives/129下載MySQL-python-1.2.3.win32-py2.7.exe&#xff0c;點擊安裝 如果是win版還需要下載&#xff1a;libguide40.dll 和 libmmd.dll這兩個文件&#xff0c;下載后放入到到C:\WINDOWS/syste…

pytorch 安裝

安裝pytorch時&#xff0c;官網不能選擇版本。原以為是瀏覽器問題&#xff0c;換了幾個瀏覽器都不行。 后來FQ之后&#xff0c;就能選擇版本了。 sudo pip install torch torchvision轉載于:https://www.cnblogs.com/rabitvision/p/8908757.html

《JavaScript 高級程序設計》精讀筆記

本系列讀書筆記是我通過學習《Javascript 高級程序設計》第3版時結合自己的理解、概括、精煉然后加以一定的拓展&#xff0c;總結而來的&#xff0c;非常適合具有一定基礎&#xff0c;同時又想把 JS 基礎學更好的童鞋&#xff0c;當然更希望得到大家的反饋于建議&#xff0c;比…

struts2實現文件查看、下載

CreateTime--2017年9月7日10:25:33 Author:Marydon struts2實現文件查看、下載 1.界面展示 <a style"color: #199ED8;" target"_blank" href"<c:url value"/telemedicine/reseCons/viewFile.do?fileName201516529IO.jpg"/>"…

css文本設置

常用的應用文本的css樣式&#xff1a; color 設置文字的顏色&#xff0c;如&#xff1a; color:red; font-size 設置文字的大小&#xff0c;如&#xff1a;font-size:12px; font-family 設置文字的字體&#xff0c;如&#xff1a;font-family:微軟雅黑; font-style 設置字體…

關鍵字static

原文出處&#xff1a;http://cmsblogs.com/ 『chenssy』 一、 static代表著什么 在Java中并不存在全局變量的概念&#xff0c;但是我們可以通過static來實現一個“偽全局”的概念&#xff0c;在Java中static表示“全局”或者“靜態”的意思&#xff0c;用來修飾成員變量和成員方…

[IoC容器Unity]第三回:依賴注入

上節介紹了&#xff0c;Unity的Lifetime Managers生命周期&#xff0c;Unity具體實現依賴注入包含構造函數注入、屬性注入、方法注入&#xff0c;所謂注入相當賦值&#xff0c;下面一個一個來介紹。 2.構造函數注入 Unity利用Resolve方法解析一個對象&#xff0c;都是調用注冊類…

Apache CarbonData 1.5.0編譯及安裝

2019獨角獸企業重金招聘Python工程師標準>>> 一、編譯環境描述 OpenStack創建五個虛擬機&#xff0c;其中1個主節點&#xff08;hostname為bigdatamaster&#xff09;&#xff0c;4個從節點&#xff08;hostname分別為&#xff0c;bigdataslave1、bigdataslave2、bi…

JS控制網頁全屏

在谷歌&#xff0c;IE等瀏覽器中&#xff0c;點擊F11按鍵會進入網頁全屏模式&#xff0c;如同看電影的劇場模式&#xff0c;這個在代碼中可以通過JS來實現&#xff0c;簡單說下在實現這個需求后的個人總結&#xff1a; 底層網頁是已經加載完畢的&#xff0c;這時我們需要的全屏…

HDU 3966-Aragorn's Story 樹鏈剖分+樹狀數組

題目鏈接 題意&#xff1a;有一棵樹&#xff0c;每個節點有權值 有三種操作&#xff1a; I c1 c2 k 從節點c1到節點c2的路徑上每個節點權值增加kD c1 c2 k 從節點c1到節點c2的路徑上每個節點權值減少kQ i 查詢節點i的權值是多少思路&#xff1a; 樹鏈剖分處理出來的鏈放在數組中…

Filter介紹

Filter 可認為是 Servlet的一種 “ 加強版 ”&#xff0c;它主要用于對用戶請求進行預處理&#xff0c; 也可以對HttpServletResponse 進行后處理&#xff0c;是個典型的處理鏈。Filter 也可對用戶請求生成響應&#xff0c;這一 點與Servlet 相同&#xff0c; 但實際上很少會使…

LeetCode算法題-Jewels and Stones(Java實現)

這是悅樂書的第313次更新&#xff0c;第334篇原創 01 看題和準備 今天介紹的是LeetCode算法題中Easy級別的第182題&#xff08;順位題號是771&#xff09;。字符串J代表珠寶&#xff0c;S代表你擁有的石頭。S中的每個字符都是你擁有的一種石頭。計算S中有多少石頭也是珠寶。J中…