Rexact
Cheatsheet

Regex numéro de routage ABA

Un numéro de routage ABA, ce n'est pas juste « 9 chiffres commençant par un préfixe régional valide » : une somme pondérée (poids 3-7-1 répétés) doit être divisible par 10. Une regex publiée sur RegexLib, notée 5 étoiles sur 5, se contente du préfixe — et voici la preuve la plus parlante possible : ses propres exemples de numéros « valides » documentés sur la page (614321634, 114000900, 703452098) échouent tous les trois au vrai calcul de contrôle, vérifié indépendamment. Une bonne note ne garantit rien. Voici un motif qui se limite honnêtement à ce qu'une regex peut vérifier ici, comparé à cette tentative et deux autres.

/^[0-9]{9}$/
passe 20/20 cas

Comparatif des patterns existants

Implémentation

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

Limites

  • Valide seulement la FORME (9 chiffres) : ne calcule pas la somme pondérée 3-7-1 qui constitue le vrai chiffre de contrôle — un numéro syntaxiquement valide selon ce motif peut échouer ce calcul et ne correspondre à aucune institution réelle (voir 123456789, 999999999 et 021000020 dans les exemples, tous structurellement valides mais faux à la clé).
  • Ne consulte pas le registre officiel tenu par Accuity/LexisNexis Risk Solutions pour le compte de l'ABA : seule cette source confirme qu'un numéro est réellement attribué à une institution active.
  • N'exclut aucun préfixe régional obsolète ou jamais attribué : contrairement à ce qu'une regex par plage de préfixe pourrait laisser croire, une plage syntaxiquement plausible n'a jamais garanti qu'un district existe réellement à ce jour.
  • Ne distingue pas un numéro de routage ABA (établissements bancaires américains) d'un numéro à 9 chiffres d'un tout autre système (SIREN français, par exemple) : la forme seule, 9 chiffres, est insuffisante pour identifier le système dont provient un numéro isolé de son contexte.