Tuesday, April 09, 2013

US Social Security number(SSN), 美國社會安全號碼


原來SSN 係有兩個version:

A) Before 25th June, 2011
http://www.ssa.gov/employer/ssnweb.htm

B) After 25th June, 2011
http://www.ssa.gov/employer/randomization.html.

所以要原全正確的分析一定還要有發出日期 (issue date).

今天先說說 A) issued before 25th June, 2011.

Structure:


社會安全號碼是由九個數字組成的號碼,格式為「AAA-GG-SSSS」。號碼分為三個部份:

1) AAA 區域號碼(area number)是前三位數字, 通常是申請者指定的收件地址州份 或在1973年之前的核發該卡片的機構代碼. 目前,有效的社會安全號碼中,區域號碼不會超過社會安全局所指定的上限772

2) GG 群組號碼(group number)為中間的兩位數字。它們與地理區域或其他資料並沒有任何相關性,僅是為了將號碼平均分配所設計的。群組號碼的範圍從01至99,並不按照數字大小的順序發行。為了管理上的原因,群組號碼依照以下順序發行:

01至09的奇數
10至98的偶數
02至08的偶數
11至99的奇數

3) SSSS 序號(serial number)。它們僅代表數字上的序號,在群組內的範圍從0001至9999。

Validation Rules:


1) 一定是 格式 AAA-GG-SSSS , 11位長

2) 任何數字群組不得全為 「0」(000-##-####、##-00-####、###-##-0000)

3) 區域號碼 (AAA) 不能是 000, 666 或者900到999

4) June 25, 2011之前區域號碼 (AAA)不得超過772

5) 不能落在  987-65-4320 到 987-65-4329 中 (保留作為廣告宣傳使用)

6) 社會安全局發佈了與區域號碼對應的最大群組號碼列表。由於群組號碼是依照一定的順序發行,因此可以藉由無效的群組號碼來辨識不合法的社會安全號碼。
http://www.socialsecurity.gov/employer/ssnvhighgroup.htm

Regular Expressions:


a) 以 Rules 1) 為標準:

^(\d{3}-?\d{2}-?\d{4}|XXX-XX-XXXX)$

b) 以 Rules 1), 2), 3), 4) 為標準

^(?!(000|666))([0-6]\d{2}|7([0-6]\d|7[012]))-(?!00)\d{2}-(?!0000)\d{4}$

至於 5), 6)  就只好自行寫Code 了.

No comments: