Rexact
Cheatsheet

Regex code BIC / SWIFT

L'article Wikipédia sur la norme ISO 9362, cité tel quel dans une réponse Stack Overflow, donne une regex... sans ancrage début/fin de chaîne. Un article de blog qui détaille pas à pas la construction d'une regex BIC part lui aussi d'un premier brouillon trop permissif : il autorise de 2 à 5 caractères après le code pays, alors que la norme n'en autorise exactement que 2 ou 5, jamais 3 ou 4. Voici un motif qui corrige ces deux points, comparé à ces deux tentatives réelles et à une troisième qui, elle, fonctionne mais rejette les saisies en minuscules — une limite que son propre auteur reconnaît dans sa réponse.

/^[A-Z]{6}[A-Z0-9]{2}(?:[A-Z0-9]{3})?$/i
passe 20/20 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^[A-Z]{6}[A-Z0-9]{2}(?:[A-Z0-9]{3})?$", "i");
re.test(input);

Limites

  • Ne vérifie que la forme : ne consulte aucun registre SWIFT, ne garantit ni qu'une banque porte réellement ce code, ni que le code pays (positions 5-6) correspond à un pays ISO 3166-1 existant.
  • N'interprète pas la signification du second caractère du code de localisation (0 = BIC de test, 1 = participant passif, 2 = facturation inversée) : ce sont des conventions documentées par la norme, pas des contraintes de forme.
  • Le code branche de 3 caractères, quand il est absent, sous-entend le siège principal (« XXX » implicite) : ce motif accepte aussi bien la forme à 8 caractères que la forme à 11 explicitement terminée par « XXX », sans les distinguer.
  • N'exclut pas les combinaisons de code pays théoriquement inutilisées (par exemple un code qui ne correspond à aucun pays ISO 3166-1 ni à l'exception « XK » du Kosovo) : seule la forme (2 lettres) est vérifiée, pas la liste réelle des codes valides.

Pages liées