日期:2014-05-18  浏览次数:20462 次

[10分]求香港身份证正则表达式
如题~

------解决方案--------------------
说说香港身份证号码:
身份证号码的结构,可以用XYabcdef(z)表示。「X」可能是「空格」或是一个英文字母,「Y」则必定是英文字母。「abcdef」代表一个六位数字,而「z」是作为检码之用,它的可能选择是0, 1, 2, ... , 9, A(代表10)。这些代号的背后,都可配上一个编码值。透过编码值,便可找出
9X+8Y+7a+6b+5c+4d+3e+2f+z
的总和。该总和特别之处,是必须被11整除。利用这特点,我们便能找出括号内的数字。
X或Y的编码值:
空格 58 I 18 R 27
A 10 J 19 S 28
B 11 K 20 T 29
C 12 L 21 U 30
D 13 M 22 V 31
E 14 N 23 W 32
F 15 O 24 X 33
G 16 P 25 Y 34
H 17 Q 26 Z 35

X354670(?)
9(58)+8(33)+7(3)+6(5)+5(4)+4(6)+3(7)+2(0)+z=902+z
被11整除,所以 。
即X354670(0)是正确的香港身分证号码