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.