Rexact
Cheatsheet

Regex ABA routing number

A US ABA routing number isn't just "9 digits starting with a valid regional prefix": a weighted sum (repeating 3-7-1 weights) must be divisible by 10. A regex published on RegexLib, rated 5 out of 5 stars, only checks the prefix - and here's the clearest possible proof: its own documented "valid" example numbers on the page (614321634, 114000900, 703452098) all three fail the real check digit calculation, verified independently. A good rating guarantees nothing. Here's a pattern that honestly limits itself to what a regex can actually check here, compared against that attempt and two others.

/^[0-9]{9}$/
passes 20/20 cases

Comparison of existing patterns

Implementation

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

Limits

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