====== std.validate.us_ssn ====== US SSN (Social Security Number) — amerikanische Sozialversicherungsnummer (9 Ziffern, Format ''AAA-GG-SSSS''). Die Validierung ist rein strukturell: Es gibt keine mathematische Prüfziffer. Stattdessen werden bekannte ungültige Muster ausgeschlossen: Area 000, Group 00, Serial 0000, sowie bekannte Testserien (z.B. 078-05-1120, 219-09-9999). → [[lyx_-_programmiersprache:units:validate|std.validate]] ---- ===== Konstanten ===== ^ Name ^ Wert ^ Bedeutung ^ | ''US_SSN_OK'' | ''0'' | Strukturell gültig | | ''US_SSN_ERR_INVALID_LENGTH'' | ''1'' | Länge ≠ 9 (ohne Bindestriche) | | ''US_SSN_ERR_INVALID_CHAR'' | ''2'' | Nur Ziffern erlaubt | | ''US_SSN_ERR_INVALID_AREA'' | ''3'' | Area 000 oder 666 oder ≥ 900 | | ''US_SSN_ERR_INVALID_GROUP'' | ''4'' | Group 00 | | ''US_SSN_ERR_INVALID_SERIAL'' | ''5'' | Serial 0000 | | ''US_SSN_ERR_KNOWN_INVALID'' | ''6'' | Bekannte ungültige oder Test-SSN | ---- ===== Verwendung ===== import std.validate.us_ssn; var ssn: pchar := "078-05-1120"; // bekannte Test-SSN (Woolworth-Portemonnaie 1938) var result: int64 := USSNValidate(ssn); if (result = US_SSN_ERR_KNOWN_INVALID) { log_error("Bekannte ungültige SSN"); } var validSsn: pchar := "123-45-6789"; if (USSNValidate(validSsn) = US_SSN_OK) { log_info(USSNFormat(USSNNormalize(validSsn))); // "123-45-6789" log_info(USSNGetArea(validSsn)); // "123" } ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''USSNValidate(ssn: pchar): int64'' | pub | SSN strukturell validieren | | ''USSNNormalize(ssn: pchar): pchar'' | pub | Bindestriche und Leerzeichen entfernen | | ''USSNFormat(ssn: pchar): pchar'' | pub | SSN mit Bindestrichen formatieren ("AAA-GG-SSSS") | | ''USSNGetArea(ssn: pchar): pchar'' | pub | Area-Code (erste 3 Stellen) extrahieren | | ''USSNGetGroup(ssn: pchar): pchar'' | pub | Group-Code (Stellen 4–5) extrahieren | | ''USSNGetSerial(ssn: pchar): pchar'' | pub | Serial-Code (letzte 4 Stellen) extrahieren | Letzte Aktualisierung: 2026-05-23