Inhaltsverzeichnis

Validierung mit std.validate

25 Units für die Prüfung von Identifikatoren, Nummern und Codes aus Finanz, Logistik, Medien, Behörden und Wissenschaft. Alle Units sind zustandslos und benötigen keine externen Datenbanken — reine Algorithmen.

Guides · std.validate Referenz


Schnellauswahl nach Bereich

Finanzen & Bankwesen

Unit Importpfad Hauptfunktion Beschreibung
IBAN std.validate.iban IBANValidate(iban) IBAN nach ISO 13616 (Modulo-97)
BIC/SWIFT std.validate.bic BICValidate(bic) BIC-11 / BIC-8 nach ISO 9362
ISIN std.validate.isin ISINValidate(isin) International Securities Identification Number
LEI std.validate.lei LEIValidate(lei) Legal Entity Identifier (ISO 17442)
US CUSIP std.validate.us_cusip USCUSIPValidate(cusip) US-Wertpapierkennnummer
Luhn std.validate.luhn LuhnCheckDigit(number) Luhn-Algorithmus (Kreditkarten, IMEI)

Produkt- & Handelskennzeichnung

Unit Importpfad Hauptfunktion Beschreibung
EAN std.validate.ean EAN13CheckDigit(code) EAN-13 und EAN-8 Barcode
ISBN std.validate.isbn ISBN13ValidateFull(isbn) ISBN-10 und ISBN-13 (Bücher)
ISMN std.validate.ismn ISMNValidate(ismn) International Standard Music Number
ISSN std.validate.issn ISSNValidate(issn) International Standard Serial Number
VIN std.validate.vin VINValidate(vin) Fahrzeug-Identifizierungsnummer

Logistik & Transport

Unit Importpfad Hauptfunktion Beschreibung
ISO 6346 std.validate.iso6346 ContainerValidate(id) Container-ID (Schifffahrt)
UIC std.validate.uic UICVehicleValidate(nr) Eisenbahn-Fahrzeugnummer (UIC)
MMSI std.validate.mmsi MMSIValidate(mmsi) Maritime Mobile Service Identity
IATA std.validate.iata IATATicketValidate(ticket) IATA-Ticketnummer

Medien & Kultur

Unit Importpfad Hauptfunktion Beschreibung
ISRC std.validate.isrc ISRCValidate(isrc) International Standard Recording Code

Wissenschaft & Chemie

Unit Importpfad Hauptfunktion Beschreibung
CAS std.validate.cas CASValidate(cas) Chemical Abstracts Service Registry Number
ORCID std.validate.orcid ORCIDValidate(orcid) Open Researcher and Contributor ID
EWC std.validate.ewc EWCValidate(code) European Waste Catalogue (Gefahrgut)

Behörden & Personendaten

Unit Importpfad Hauptfunktion Beschreibung
US SSN std.validate.us_ssn USSSNValidate(ssn) US Social Security Number
NL BSN std.validate.nl_bsn NLBSNValidate(bsn) Niederländische Bürgerservicenummer
CH AHV std.validate.ch_ahv CHAHVValidate(ahv) Schweizer AHV-Nummer
DE Nummern std.validate.de_numbers DEPZNValidate(pzn) Deutsche PZN (Pharmazentralnummer)
DE Personal std.validate.de_personal DEIDCardValidate(mrz1, mrz2) Deutscher Personalausweis (MRZ)
VAT std.validate.vat VATValidate(vat) Europäische Umsatzsteuer-ID

Verwendungsbeispiele

IBAN prüfen

import std.validate.iban;

fn checkIBAN(iban: pchar): int64 {
  // Normalisiert automatisch (Leerzeichen entfernen, Großbuchstaben):
  var normalized: int64 := IBANNormalize(iban as int64);
  var rc: int64 := IBANValidate(normalized);
  // rc: 0 = gültig, -1 = ungültig
  return rc;
}

EAN-13 Prüfziffer berechnen

import std.validate.ean;

var barcode: pchar := "590123412345"c;   // 12 Stellen ohne Prüfziffer
var check: int64 := EAN13CheckDigit(barcode as int64);
// check = erwartete Prüfziffer (0–9)

VIN (Fahrzeug-Identifizierungsnummer)

import std.validate.vin;
import std.alloc;

var vin: pchar := "1HGCM82633A004352"c;
var rc: int64 := VINValidate(vin as int64);
if rc == 0 {
  // Hersteller ausgeben:
  var mfr: int64 := alloc(64);
  VINGetManufacturer(vin as int64, mfr);
  free(mfr, 64);
}

Luhn (Kreditkarten, IMEI)

import std.validate.luhn;

var number: pchar := "4532015112830366"c;
var check: int64 := LuhnCheckDigit(number as int64);
// Vollständige Karte: Nummer + Prüfziffer muss Luhn-konform sein
var valid: int64 := LuhnValidate(number as int64);

Mehrere Validierungen in einem Formular

import std.validate.iban;
import std.validate.bic;
import std.validate.vat;

fn validateBankForm(iban: pchar, bic: pchar, vat: pchar): int64 {
  var ibanOK: int64 := IBANValidate(IBANNormalize(iban as int64));
  var bicOK:  int64 := BICValidate(bic as int64);
  var vatOK:  int64 := VATValidate(vat as int64);

  if ibanOK != 0 { return -1; }   // IBAN ungültig
  if bicOK  != 0 { return -2; }   // BIC ungültig
  if vatOK  != 0 { return -3; }   // VAT ungültig
  return 0;
}


Rückgabewerte

Alle Validate-Funktionen folgen der Lyx-Fehlerkonvention:

Rückgabe Bedeutung
0 Gültig
-1 Ungültig (Prüfsumme falsch, falsches Format)

CheckDigit-Funktionen geben die berechnete Prüfziffer zurück (0–9 oder 0–35 je nach Standard).


Welche Validator-Funktion für welchen Zweck?

Ich will … Funktion
IBAN strukturell + Prüfsumme prüfen IBANValidate (Modulo-97)
Kreditkartennummer prüfen LuhnValidate
Barcode generieren/prüfen EAN13CheckDigit / EAN8CheckDigit
Fahrzeughersteller aus VIN VINGetManufacturer + VINValidate
Chemische Substanz identifizieren CASValidate
Personalausweis (DE) MRZ prüfen DEIDCardValidate
Containernummer auf Schiff prüfen ContainerValidate
Europäische USt-ID prüfen VATValidate

Letzte Aktualisierung: 2026-06-08