Rexact
Cheatsheet

Regex IATA airport code

An IATA code isn't just "3 letters": out of 17,576 possible combinations, IATA's own fact sheet states it actually assigns only about 11,300. Three independent open-source projects - an aviation regex toolkit, Wikidata's format constraint, a real flight booking app - all use exactly the same trivial regex, never cross-checking it against the real assigned list. A made-up but well-formed code like "ZZZ" or "QQQ" passes all three. This isn't one isolated bug: it's the same shortcut repeating everywhere.

/^[A-Z]{3}$/
passes 20/20 cases

Comparison of existing patterns

Implementation

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

Limits

  • Valide seulement la FORME (3 lettres majuscules) : sur les 17 576 combinaisons possibles, environ 6 300 ne correspondent à aucun aéroport réellement desservi — « ZZZ » ou « QQQ » passent ce test aussi facilement que CDG ou JFK.
  • Ne consulte pas la recherche officielle IATA (iata.org/en/publications/directories/code-search) : seule cette source confirme qu'un code est réellement attribué et à quel aéroport.
  • Ne distingue pas le code IATA (3 lettres, usage commercial/passager) du code ICAO (4 lettres, usage opérationnel/aviation civile) : les deux systèmes coexistent pour un même aéroport sans forme commune.
  • Une même combinaison de 3 lettres peut, rarement, être partagée dans le temps par des aéroports différents après le retrait d'un ancien code : ce motif ne peut refléter aucune notion d'historique ou de changement d'attribution.