Rexact
Cheatsheet

Regex Australian ABN (business number)

An ABN (Australian Business Number) has 11 digits, written '51 824 753 556': two check digits followed by a 9-digit identifier. The ABR describes the check: subtract 1 from the first digit, multiply the 11 digits by weights 10 1 3 5 7 9 11 13 15 17 19, and the sum must be divisible by 89. A regex cannot do that calculation, but it fixes the shape. The patterns read here each accept only one writing (compact for django-localflavor, spaced for Presidio) and the Presidio ones are unanchored. Here's a pattern accepting both usual writings, compared against those attempts.

/^(?:[0-9]{11}|[0-9]{2} [0-9]{3} [0-9]{3} [0-9]{3})$/
passes 24/24 cases

Comparison of existing patterns

Implementation

const re = new RegExp("^(?:[0-9]{11}|[0-9]{2} [0-9]{3} [0-9]{3} [0-9]{3})$", "");
re.test(input);

Limits

  • Valide seulement la FORME : ne fait pas le modulo 89. « 51 824 753 557 » a la bonne forme mais ne passe pas le contrôle de l'ABR, et ce motif l'accepte ; faites le calcul dans le code (poids de la page de l'ABR).
  • N'établit pas que l'ABN est actif ni qu'il correspond à une entreprise : seule une recherche dans ABN Lookup le dit. Le motif ne couvre pas l'ACN (9 chiffres) ni le TFN, qui sont d'autres identifiants.
  • Seul l'espace simple sépare les groupes (écriture officielle) : tirets, points et tabulations sont refusés, normalisez avant.

Related pages