1. 程式人生 > >校驗18位身份證號是否是有效的身份證號

校驗18位身份證號是否是有效的身份證號

	/**
	 * 該方法用於判斷18位身份證號是否合法,依據:通過最後一位生成演算法,計算最後一位的值,與原值比較。
	 * 
	 * @param id18
	 *            長度為18的身份證號
	 * @return 合法返回true
	 */
	public boolean isId18Legal(String id18) {
		boolean result = false;
		if (id18 != null && id18.matches("^[0-9,X,x]*$")
				&& (id18.length() == 18)) {
			int tmpint = (Integer.parseInt(id18.substring(0, 1)) + Integer
					.parseInt(id18.substring(10, 11)))
					* 7
					+ (Integer.parseInt(id18.substring(1, 2)) + Integer
							.parseInt(id18.substring(11, 12)))
					* 9
					+ (Integer.parseInt(id18.substring(2, 3)) + Integer
							.parseInt(id18.substring(12, 13)))
					* 10
					+ (Integer.parseInt(id18.substring(3, 4)) + Integer
							.parseInt(id18.substring(13, 14)))
					* 5
					+ (Integer.parseInt(id18.substring(4, 5)) + Integer
							.parseInt(id18.substring(14, 15)))
					* 8
					+ (Integer.parseInt(id18.substring(5, 6)) + Integer
							.parseInt(id18.substring(15, 16)))
					* 4
					+ (Integer.parseInt(id18.substring(6, 7)) + Integer
							.parseInt(id18.substring(16, 17)))
					* 2
					+ Integer.parseInt(id18.substring(7, 8))
					* 1
					+ Integer.parseInt(id18.substring(8, 9))
					* 6
					+ Integer.parseInt(id18.substring(9, 10)) * 3;
			tmpint = tmpint % 11;
			String id = "10X98765432";
			String idnew = id18.substring(0, 17)
					+ id.substring(tmpint, tmpint + 1);
			if (id18.equals(idnew)) {
				result = true;
			}
		}
		return result;
	}

相關推薦

18身份證是否是有效身份證

/** * 該方法用於判斷18位身份證號是否合法,依據:通過最後一位生成演算法,計算最後一位的值,與原值比較。 * * @param id18 * 長度為18的身份證號 * @return 合法返回true */ publ

PHP1518身份證

前言 看新公司框架原始碼的時候,發現了這個功能,於是搜尋一番並封裝了一下身份證號校驗的類。 目前大家的身份證號大多是 18 位的,當然,也不排除有些老人的身份證號是 15 位的。 如果強制要求是 18 位的話,會比較好,因為 15 位的身份證號沒有校驗碼,可以說,只要瞭解大概結構,隨手都可以造出一系列身

java 1518身份證號碼

package com.first.common.utility.idcard; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java

forms元件(註冊使用者講解)(功能,渲染模板功能,渲染錯誤資訊功能,區域性鉤子渲染錯誤資訊,全域性鉤子渲染錯誤資訊)

forms元件 from django import forms class Myforms(forms.Form): name = forms.CharField(max_length=8,min_length=3 ,label='使用者名稱',

crc3248mac 地址

//【用函式判斷系統是Big Endian還是Little Endian】 //如果位元組序為big-endian,返回true; //反之為   little-endian,返回false bool IsBig_Endian() {     unsigned short

身份證(支援1518身份證

//身份證號合法性驗證 //支援15位和18位身份證號//支援地址編碼、出生日期、校驗位驗證 function IdentityCodeValid(code) { var city = { 11: "北京", 12: "天津", 13: "河北", 14: "山西"

18身份證藏了什麼玄機?用js教你身份證

大家好,想必各位程式猿已經有所發現,而相應地,在日常的開發任務需求了很多跟涉及到使用者的都幾乎需

18身份證碼驗證算法

div style charat span true class fun cnblogs test function checkCode(card){ if (/^\d{17}[\dxX]$/.test(card)) {

18身份證號碼最後一

void i++ apt div 身份證號碼 ++ print col str 1 package com.jdk7.chapter5; 2 3 /** 4 * 僅能校驗15位或18位身份證號的校驗碼 5 * @author Administrator

身份證18碼)的計算方法

1、將前面的身份證號碼17位數分別乘以不同的係數。從第一位到第十七位的係數分別為:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。2、將這17位數字和係數相乘的結果相加。3、用加出來和除以11,看餘數是多少?4、餘數只可能有0-1-2-3-4-5-6-7-8-9-10這11個數字。其分

居民身份證號碼的奧祕及身份證18碼)的計算方法

居民身份證是國家法定的證明公民個人身份的證件。為了堵塞和制止假居民身份證的流通和使用,在查驗和核查居民身份證時可掌握以下幾個要點:   一、居民身份證有效期限與持證人年齡、簽發日期的關係   居民身份證的有效期限分為10年、20年、長期三種。16週歲至25週歲的,發給有效期為10年的居民身份

身份證18碼)如何計算

身份證校驗碼的計算方法 1、將前面的身份證號碼17位數分別乘以不同的係數。從第一位到第十七位的係數分別為:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 2、將這17位數字和係數相乘的結果相加。 3、用加出來和除以11,看餘數是多少? 4、餘數只可能有0-1

Java 驗證身份證的合法性(只利用)

import java.util.Scanner; public class E201_06_04_身份證驗證 { public static void main(String[] args)

身份證號碼 出生年月 以及有效 正則表示式判斷

/** * 身份證號碼格式校驗 */ function isIdCardNo (str) { // 身份證號碼正則表示式 var rpIdcard = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; var l

身份證及其18歲判定(包含18身份證和15身份證)

// IDCardVerifyDemo.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include <iostream> #include <string> #include <time.h>

18身份證號碼最後一碼的計算方法

http://dev.csdn.net/article/63/63451.shtm公民身份號碼是特徵組合碼,由十七位數字本體碼和一位校驗碼組成。排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。校驗方法:(1)十七位數字本體碼加權求和

JS身份證號碼(1518)

//檢查生日是否正確 checkBirthday = function(card) { var len = card.length; //身份證15位時,次序為省(3位)市(3位)年(2位)月(2位)日(2位)校驗位(3位),皆為數字 if(len == '15') { var re_fifteen = /^

Jquery身份證以及根據身份證自動寫入出生年月

spa ron and digi tro 號碼 hang code birt 效果圖: 根據身份證號自動寫入出生年月 身份證號碼校驗: js代碼部分: 1 $(function() { 2 jQuery.validator.addMethod("isI

計算身份證碼(最後一

map git 校驗碼 meta ffi spa class ++ msg 在線預覽 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <

java身份證合法性並獲取並根據身份證提取身份證相關資訊

原文地址:https://blog.csdn.net/ycb1689/article/details/52352147   /** * 身份證前6位【ABCDEF】為行政區劃數字程式碼(簡稱數字碼)說明(參考《GB/T 2260-2007 中華人民共和國行政區劃程式碼》): *