Regex LEI (Legal Entity Identifier)
An LEI isn't just "4 digits + 00 + 12 characters + 2 digits": a widespread belief holds that positions 5-6 are always "00", but that's only true by historical convention - Apple's real LEI (HWUPKR0MPOU8FGXBT394) has "KR" there, Microsoft's has "EJ". A GeeksforGeeks regex that hardcodes that "00" would therefore reject both companies' real, active LEIs, verified directly against the official GLEIF API. Here's a pattern that makes no such assumption, compared against that attempt and two others.
/^[A-Z0-9]{18}[0-9]{2}$/passes 20/20 cases
Comparison of existing patterns
Implementation
const re = new RegExp("^[A-Z0-9]{18}[0-9]{2}$", "");
re.test(input);Limits
- Valide seulement la FORME (20 caractères alphanumériques majuscules) : ne calcule pas les 2 chiffres de contrôle ISO 7064 MOD 97-10 — un LEI syntaxiquement valide selon ce motif peut avoir une clé fausse et ne correspondre à aucune entité réellement enregistrée (voir HWUPKR0MPOU8FGXBT395 dans les exemples, structure correcte mais clé fausse).
- Ne consulte pas l'API officielle GLEIF (api.gleif.org) : seule cette source confirme qu'un LEI est réellement attribué, actif, et à quelle entité.
- Ne fait aucune hypothèse sur les positions 5-6 (souvent « 00 » par convention historique, mais pas toujours — les LEI d'Apple et de Microsoft en sont la preuve directe) : contrairement à plusieurs tentatives comparées ici qui codent cette hypothèse en dur.
- N'accepte que les caractères ASCII majuscules et chiffres : un tiret cadratin ou tout autre caractère Unicode visuellement proche d'un caractère valide est rejeté, une confusion réelle rencontrée dans au moins une tentative trouvée en ligne.