Rexact
Cheatsheet

Regex SEDOL (UK security code)

A SEDOL, assigned by the London Stock Exchange, has 7 characters: six alphanumeric characters and a numeric check digit. Since January 2004 new SEDOLs are alphanumeric and never contain a vowel (A, E, I, O, U); the check digit uses weights 1, 3, 1, 7, 3, 9 (Wikipedia article, citing the SEDOL Masterfile technical guide). Among the attempts read, formvalidation's accepts any letter, vowels included; the JavaScript code in the Wikipedia article only tests the first six characters and so rejects a full SEDOL; the sec_id gem makes the check digit optional. Here's a pattern requiring the check digit in seventh position, compared against those attempts. The check digit is not recomputed.

/^[0-9BCDFGHJKLMNPQRSTVWXYZ]{6}[0-9]$/
passes 25/25 cases

Comparison of existing patterns

Implementation

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

Limits

  • 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.

Related pages