身份證號碼第18位符合如下演算法:用前十七位號碼,依次加權乘以7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2,再將得出的加權總和除以11,得出的餘數, 從0到10十一種,依次對應尾號:1、0、x、9、8、7、6、5、4、3、2
指令碼如下:其中 identifynumber為身份證號
mod (
( substr(a.identifynumber, 1, 1) * 7 + substr(a.identifynumber, 2, 1) * 9 + substr(a.identifynumber, 3, 1) * 10 + substr(a.identifynumber, 4, 1) * 5 + substr(a.identifynumber, 5, 1) * 8 + substr(a.identifynumber, 6, 1) * 4 + substr(a.identifynumber, 7, 1) * 2 + substr(a.identifynumber, 8, 1) * 1 + substr(a.identifynumber, 9, 1) * 6 + substr(a.identifynumber, 10, 1) * 3 + substr(a.identifynumber, 11, 1) * 7 + substr(a.identifynumber, 12, 1) * 9 + substr(a.identifynumber, 13, 1) * 10 + substr(a.identifynumber, 14, 1) * 5 + substr(a.identifynumber, 15, 1) * 8 + substr(a.identifynumber, 16, 1) * 4 + substr(a.identifynumber, 17, 1) * 2
), 11) <> (
case
when substr(a.identifynumber, 18, 1) = '1' then
'0'when substr(a.identifynumber, 18, 1) = '0' then
'1'when substr(a.identifynumber, 18, 1) in ('x', 'x') then
'2'when substr(a.identifynumber, 18, 1) = '9' then
'3'when substr(a.identifynumber, 18, 1) = '8' then
'4'when substr(a.identifynumber, 18, 1) = '7' then
'5'when substr(a.identifynumber, 18, 1) = '6' then
'6'when substr(a.identifynumber, 18, 1) = '5' then
'7'when substr(a.identifynumber, 18, 1) = '4' then
'8'when substr(a.identifynumber, 18, 1) = '3' then
'9'when substr(a.identifynumber, 18, 1) = '2' then
'10'
end)
身份證號碼
每乙個人自出生後都會有乙個身份證號碼。根據我國有關部門規定,公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次為 六位數字位址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。居民身份證是國家法定的證明公民個人身份的有效證件。例如 對於身份證號碼330719...
身份證號碼驗證
說明 驗證身份證的有效性 引數 cid 身份證號碼 返回 地方 出生時間 性別 private string checkcidinfo string cid if cid.length 18 char c cid cid.length 1 bool last false if c 0 c 9 c a...
身份證號碼檢測
華為的上機題 我國公民的身份證號碼特點如下 1 長度為18位 2 第1 17位只能為數字 3 第18位可以是數字或者小寫英文本母x。4 身份證號碼的第7 14位表示持有人生日的年 月 日資訊。例如 511002 19880808 0111或511002 19880808011x。請實現身份證號碼合法...