You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
VFR squawk codes are generally 1200 in North America and 7000 in Europe.
Purpose
Description
RegEx
Example
NDB
Non-directional beacon identifier
/^[A-Z]{1,3}$/
TD
VOR
VHF omnidirectional range ident
/^[A-Z]{3}$/
APU
INT
Airway intersection waypoint
/^[A-Z]{5}$/
PRAWN
Squawk Code
Unique transponder octal code
/^[0-7]{4}$/
0318
Distress
If match, aircraft is in distress
/^7[567]00$/
7700
VFR Squawk
XPDR code for aircraft under VFR
/^(1200)|(7000)$/
1200
Runways
Standard runway identifiers 01-36
/^(0?[1-9]|[1-2]\d|3[0-6])[LCR]?$/
36L
Ticketing & Business Operations
Note that for PNR record identifiers, some GDS providers and operators use 5-character PNR idents,
but most use 6-character ones. Additionally, for readibility purposes, some airlines and systems
will skip 0, 1, I, L, and O.
The regex for flight code /^[A-Z0-9]{3,}$/ seems too loose. It will happily accept 123 or 1234.
I am not familiar with the official specs for airline IATA codes, but I suspect the regex could enforce that in the first two characters there should be at least one alphabetic.
This is the best I could come up with /^([A-Z][\d]|[\d][A-Z]|[A-Z]{2})(\d{1,})$/. This contains two capture groups one for IATA and one for flight number.
It will match on things like KL1234, 9F123, K91 but reject anything that is just numbers. See https://regex101.com/r/nsec7z/1
The regex for flight code /^[A-Z0-9]{3,}$/ seems too loose. It will happily accept 123 or 1234.
I am not familiar with the official specs for airline IATA codes, but I suspect the regex could enforce that in the first two characters there should be at least one alphabetic.
This is the best I could come up with /^([A-Z][\d]|[\d][A-Z]|[A-Z]{2})(\d{1,})$/. This contains two capture groups one for IATA and one for flight number.
It will match on things like KL1234, 9F123, K91 but reject anything that is just numbers. See https://regex101.com/r/nsec7z/1
This replacement is acceptable. I've updated the gist with this regex for IATA flight number as well as IATA airline code. Thanks for contributing, @0x80!
Hi!
For aircraft registration, the dash is optional - it is only written for readability.
However the regex misses some "exotic" registration schemes, such as S7 for Seychelles or 9H for Malta. Then you also may encounter such weird codes as 2- (Guernesey), RDPL- (Laos) or A40 (Oman)...
I suggest the following regex: /^[A-Z]-[A-Z]{4}|([A-Z]{2}|[A-Z1-9][A-Z]|[A-Z][A-Z1-9])-[A-Z]{3}|N[0-9]{1,5}[A-Z]{0,2}$/ but this will not cater for the weirdest codes... Your call to include these!
According to the rules of the FAA, US Registration (Tail Codes) must start with an "N", then 1-5 numbers, or 1-4 numbers followed by one letter, or 1-3 numbers followed by two letters. The first number cannot be zero and the letters "I" and "O" are not used.
So, taking all that into account here is the Regular Expression I came up with for US Aircraft Registrations...
[N][1-9] (\d{0,4} | \d{0,3}[A-HJ-NP-Z] | \d{0,2}[A-HJ-NP-Z]{2})
The FAA airport code regex is incomplete. FAA identifiers can be 3-5 alphanumeric characters (with some exceptions). Although, I can't find any examples of a five-character location.
I think something like this is a little closer: /(\b[A-Z0-9]{3,4}\b)+/
The Federal Aviation Administration location identifier (FAA LID) is a three- to five-character alphanumeric code identifying aviation related facilities inside the United States, though some codes are reserved for, and are managed by other entities.[1]: §1–2-1
For nearly all major airports, the assigned identifiers are alphabetic three-letter codes, such as ORD for Chicago O’Hare International Airport. Minor airfields are typically assigned a mix of alphanumeric characters, such as 8N2 for Skydive Chicago Airport and 0B5 for Turners Falls Airport. Private airfields are assigned a four-character identifier, such as 1CA9 for Los Angeles County Fire Department Heliport. The location identifiers are coordinated with the Transport Canada Identifiers described below.
In general, the FAA has authority to assign all three-letter identifiers (except those beginning with the letters K, N, W, and Y), all three and four character alphanumeric identifiers, and five-letter identifiers for the United States and its jurisdictions. The Department of the Navy assigns three-letter identifiers beginning with the letter N for the exclusive use of that Department. Transport Canada assigns three character identifiers beginning with Y. The block beginning with letter Q is under international telecommunications jurisdiction, but is used internally by FAA Technical Operations to identify National Airspace equipment not covered by any other identifying code system. The block beginning with Z identifies United States Air Route Traffic Control Centers.[1]: §1–2-2
@mtowers - Thank you, I've updated the FAA identifiers per your suggestion with the exception of using $^ tokens instead of word boundaries. This is just to keep everything else in line.
@Tricky-D & @obotor - Thanks for your inputs as well. I will review & make update shortly on registration numbers. It may come down to splitting US since we can be more specific with FAA registrations.
Concerning the ICAO Aircraft type, I believe we should be using the following instead:
When checking the ICAO's own website, you can find type codes consisting of only three characters (for example: SW3)