Rexact
Cheatsheet

Regex SEDOL (code de titre britannique)

Un SEDOL, attribué par la Bourse de Londres, compte 7 caractères : six caractères alphanumériques et une clé de contrôle chiffrée. Depuis janvier 2004 les nouveaux SEDOL sont alphanumériques et ne contiennent jamais de voyelle (A, E, I, O, U) ; la clé est calculée avec les poids 1, 3, 1, 7, 3, 9 (article Wikipédia, qui cite le guide technique du SEDOL Masterfile). Parmi les tentatives relues, celle de formvalidation accepte n'importe quelle lettre, voyelles comprises ; le code JavaScript de l'article Wikipédia ne teste que les six premiers caractères et rejette donc un SEDOL complet ; le gem sec_id rend la clé facultative. Voici un motif qui exige la clé en septième position, comparé à ces tentatives. La clé n'est pas recalculée.

/^[0-9BCDFGHJKLMNPQRSTVWXYZ]{6}[0-9]$/
passe 25/25 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^[0-9BCDFGHJKLMNPQRSTVWXYZ]{6}[0-9]$", "");
re.test(input);

Limites

  • Valide seulement la FORME : « BD9MZZ6 » a la bonne structure mais une clé fausse (la bonne valeur est 7) et passe ce motif. La clé (poids 1, 3, 1, 7, 3, 9) n'est pas recalculée par la regex.
  • L'article Wikipédia indique que les nouveaux SEDOL commencent par une lettre et que les anciens sont numériques ; ce motif n'impose pas cette séparation (une plage réservée à l'utilisateur, commençant par 9, peut contenir des lettres d'après l'article, mention marquée « citation needed »).
  • Aucune vérification d'existence : seul le SEDOL Masterfile du London Stock Exchange Group le confirme. Un SEDOL britannique devient un ISIN en ajoutant deux zéros devant, le code pays GB et la clé ISIN : voir la fiche isin.
  • Pas de tolérance pour espaces, tirets ou minuscules. Les voyelles sont refusées, même si elles comptent dans le calcul de la clé (H = 17, J = 19) ; les exemples du corpus sont tirés de la documentation de bibliothèques ou synthétiques.

Pages liées