make the tld non-linear-searchy
This commit is contained in:
@@ -1,12 +1,16 @@
|
|||||||
/// Extension on String adding utilities checking TLD validity.
|
/// Extension on String adding utilities checking TLD validity.
|
||||||
extension TLDString on String {
|
extension TLDString on String {
|
||||||
/// Returns true if the string is a valid TLD.
|
/// Returns true if the string is a valid TLD.
|
||||||
bool isValidTLD() => tlds.contains(toUpperCase());
|
bool isValidTLD() =>
|
||||||
|
isNotEmpty &&
|
||||||
|
tlds.containsKey(this[0].toUpperCase()) &&
|
||||||
|
tlds[this[0].toUpperCase()]!.contains(toUpperCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// List of valid TLDs.
|
/// List of valid TLDs.
|
||||||
/// https://data.iana.org/TLD/tlds-alpha-by-domain.txt
|
/// https://data.iana.org/TLD/tlds-alpha-by-domain.txt
|
||||||
const tlds = [
|
const tlds = {
|
||||||
|
'A': [
|
||||||
'AAA',
|
'AAA',
|
||||||
'AARP',
|
'AARP',
|
||||||
'ABARTH',
|
'ABARTH',
|
||||||
@@ -103,6 +107,8 @@ const tlds = [
|
|||||||
'AXA',
|
'AXA',
|
||||||
'AZ',
|
'AZ',
|
||||||
'AZURE',
|
'AZURE',
|
||||||
|
],
|
||||||
|
'B': [
|
||||||
'BA',
|
'BA',
|
||||||
'BABY',
|
'BABY',
|
||||||
'BAIDU',
|
'BAIDU',
|
||||||
@@ -196,6 +202,8 @@ const tlds = [
|
|||||||
'BY',
|
'BY',
|
||||||
'BZ',
|
'BZ',
|
||||||
'BZH',
|
'BZH',
|
||||||
|
],
|
||||||
|
'C': [
|
||||||
'CA',
|
'CA',
|
||||||
'CAB',
|
'CAB',
|
||||||
'CAFE',
|
'CAFE',
|
||||||
@@ -318,6 +326,8 @@ const tlds = [
|
|||||||
'CYMRU',
|
'CYMRU',
|
||||||
'CYOU',
|
'CYOU',
|
||||||
'CZ',
|
'CZ',
|
||||||
|
],
|
||||||
|
'D': [
|
||||||
'DABUR',
|
'DABUR',
|
||||||
'DAD',
|
'DAD',
|
||||||
'DANCE',
|
'DANCE',
|
||||||
@@ -373,6 +383,8 @@ const tlds = [
|
|||||||
'DVAG',
|
'DVAG',
|
||||||
'DVR',
|
'DVR',
|
||||||
'DZ',
|
'DZ',
|
||||||
|
],
|
||||||
|
'E': [
|
||||||
'EARTH',
|
'EARTH',
|
||||||
'EAT',
|
'EAT',
|
||||||
'EC',
|
'EC',
|
||||||
@@ -407,6 +419,8 @@ const tlds = [
|
|||||||
'EXPOSED',
|
'EXPOSED',
|
||||||
'EXPRESS',
|
'EXPRESS',
|
||||||
'EXTRASPACE',
|
'EXTRASPACE',
|
||||||
|
],
|
||||||
|
'F': [
|
||||||
'FAGE',
|
'FAGE',
|
||||||
'FAIL',
|
'FAIL',
|
||||||
'FAIRWINDS',
|
'FAIRWINDS',
|
||||||
@@ -471,6 +485,8 @@ const tlds = [
|
|||||||
'FURNITURE',
|
'FURNITURE',
|
||||||
'FUTBOL',
|
'FUTBOL',
|
||||||
'FYI',
|
'FYI',
|
||||||
|
],
|
||||||
|
'G': [
|
||||||
'GA',
|
'GA',
|
||||||
'GAL',
|
'GAL',
|
||||||
'GALLERY',
|
'GALLERY',
|
||||||
@@ -542,6 +558,8 @@ const tlds = [
|
|||||||
'GURU',
|
'GURU',
|
||||||
'GW',
|
'GW',
|
||||||
'GY',
|
'GY',
|
||||||
|
],
|
||||||
|
'H': [
|
||||||
'HAIR',
|
'HAIR',
|
||||||
'HAMBURG',
|
'HAMBURG',
|
||||||
'HANGOUT',
|
'HANGOUT',
|
||||||
@@ -589,6 +607,8 @@ const tlds = [
|
|||||||
'HUGHES',
|
'HUGHES',
|
||||||
'HYATT',
|
'HYATT',
|
||||||
'HYUNDAI',
|
'HYUNDAI',
|
||||||
|
],
|
||||||
|
'I': [
|
||||||
'IBM',
|
'IBM',
|
||||||
'ICBC',
|
'ICBC',
|
||||||
'ICE',
|
'ICE',
|
||||||
@@ -630,6 +650,8 @@ const tlds = [
|
|||||||
'IT',
|
'IT',
|
||||||
'ITAU',
|
'ITAU',
|
||||||
'ITV',
|
'ITV',
|
||||||
|
],
|
||||||
|
'J': [
|
||||||
'JAGUAR',
|
'JAGUAR',
|
||||||
'JAVA',
|
'JAVA',
|
||||||
'JCB',
|
'JCB',
|
||||||
@@ -652,6 +674,8 @@ const tlds = [
|
|||||||
'JPRS',
|
'JPRS',
|
||||||
'JUEGOS',
|
'JUEGOS',
|
||||||
'JUNIPER',
|
'JUNIPER',
|
||||||
|
],
|
||||||
|
'K': [
|
||||||
'KAUFEN',
|
'KAUFEN',
|
||||||
'KDDI',
|
'KDDI',
|
||||||
'KE',
|
'KE',
|
||||||
@@ -684,6 +708,8 @@ const tlds = [
|
|||||||
'KY',
|
'KY',
|
||||||
'KYOTO',
|
'KYOTO',
|
||||||
'KZ',
|
'KZ',
|
||||||
|
],
|
||||||
|
'L': [
|
||||||
'LA',
|
'LA',
|
||||||
'LACAIXA',
|
'LACAIXA',
|
||||||
'LAMBORGHINI',
|
'LAMBORGHINI',
|
||||||
@@ -751,6 +777,8 @@ const tlds = [
|
|||||||
'LUXURY',
|
'LUXURY',
|
||||||
'LV',
|
'LV',
|
||||||
'LY',
|
'LY',
|
||||||
|
],
|
||||||
|
'M': [
|
||||||
'MA',
|
'MA',
|
||||||
'MACYS',
|
'MACYS',
|
||||||
'MADRID',
|
'MADRID',
|
||||||
@@ -832,6 +860,8 @@ const tlds = [
|
|||||||
'MX',
|
'MX',
|
||||||
'MY',
|
'MY',
|
||||||
'MZ',
|
'MZ',
|
||||||
|
],
|
||||||
|
'N': [
|
||||||
'NA',
|
'NA',
|
||||||
'NAB',
|
'NAB',
|
||||||
'NAGOYA',
|
'NAGOYA',
|
||||||
@@ -880,6 +910,8 @@ const tlds = [
|
|||||||
'NU',
|
'NU',
|
||||||
'NYC',
|
'NYC',
|
||||||
'NZ',
|
'NZ',
|
||||||
|
],
|
||||||
|
'O': [
|
||||||
'OBI',
|
'OBI',
|
||||||
'OBSERVER',
|
'OBSERVER',
|
||||||
'OFFICE',
|
'OFFICE',
|
||||||
@@ -905,6 +937,8 @@ const tlds = [
|
|||||||
'OTSUKA',
|
'OTSUKA',
|
||||||
'OTT',
|
'OTT',
|
||||||
'OVH',
|
'OVH',
|
||||||
|
],
|
||||||
|
'P': [
|
||||||
'PA',
|
'PA',
|
||||||
'PAGE',
|
'PAGE',
|
||||||
'PANASONIC',
|
'PANASONIC',
|
||||||
@@ -976,10 +1010,14 @@ const tlds = [
|
|||||||
'PW',
|
'PW',
|
||||||
'PWC',
|
'PWC',
|
||||||
'PY',
|
'PY',
|
||||||
|
],
|
||||||
|
'Q': [
|
||||||
'QA',
|
'QA',
|
||||||
'QPON',
|
'QPON',
|
||||||
'QUEBEC',
|
'QUEBEC',
|
||||||
'QUEST',
|
'QUEST',
|
||||||
|
],
|
||||||
|
'R': [
|
||||||
'RACING',
|
'RACING',
|
||||||
'RADIO',
|
'RADIO',
|
||||||
'RE',
|
'RE',
|
||||||
@@ -1028,6 +1066,8 @@ const tlds = [
|
|||||||
'RW',
|
'RW',
|
||||||
'RWE',
|
'RWE',
|
||||||
'RYUKYU',
|
'RYUKYU',
|
||||||
|
],
|
||||||
|
'S': [
|
||||||
'SA',
|
'SA',
|
||||||
'SAARLAND',
|
'SAARLAND',
|
||||||
'SAFE',
|
'SAFE',
|
||||||
@@ -1156,6 +1196,8 @@ const tlds = [
|
|||||||
'SYDNEY',
|
'SYDNEY',
|
||||||
'SYSTEMS',
|
'SYSTEMS',
|
||||||
'SZ',
|
'SZ',
|
||||||
|
],
|
||||||
|
'T': [
|
||||||
'TAB',
|
'TAB',
|
||||||
'TAIPEI',
|
'TAIPEI',
|
||||||
'TALK',
|
'TALK',
|
||||||
@@ -1230,6 +1272,8 @@ const tlds = [
|
|||||||
'TVS',
|
'TVS',
|
||||||
'TW',
|
'TW',
|
||||||
'TZ',
|
'TZ',
|
||||||
|
],
|
||||||
|
'U': [
|
||||||
'UA',
|
'UA',
|
||||||
'UBANK',
|
'UBANK',
|
||||||
'UBS',
|
'UBS',
|
||||||
@@ -1243,6 +1287,8 @@ const tlds = [
|
|||||||
'US',
|
'US',
|
||||||
'UY',
|
'UY',
|
||||||
'UZ',
|
'UZ',
|
||||||
|
],
|
||||||
|
'V': [
|
||||||
'VA',
|
'VA',
|
||||||
'VACATIONS',
|
'VACATIONS',
|
||||||
'VANA',
|
'VANA',
|
||||||
@@ -1279,6 +1325,8 @@ const tlds = [
|
|||||||
'VOYAGE',
|
'VOYAGE',
|
||||||
'VU',
|
'VU',
|
||||||
'VUELOS',
|
'VUELOS',
|
||||||
|
],
|
||||||
|
'W': [
|
||||||
'WALES',
|
'WALES',
|
||||||
'WALMART',
|
'WALMART',
|
||||||
'WALTER',
|
'WALTER',
|
||||||
@@ -1314,6 +1362,8 @@ const tlds = [
|
|||||||
'WS',
|
'WS',
|
||||||
'WTC',
|
'WTC',
|
||||||
'WTF',
|
'WTF',
|
||||||
|
],
|
||||||
|
'X': [
|
||||||
'XBOX',
|
'XBOX',
|
||||||
'XEROX',
|
'XEROX',
|
||||||
'XFINITY',
|
'XFINITY',
|
||||||
@@ -1474,6 +1524,8 @@ const tlds = [
|
|||||||
'XN--ZFR164B',
|
'XN--ZFR164B',
|
||||||
'XXX',
|
'XXX',
|
||||||
'XYZ',
|
'XYZ',
|
||||||
|
],
|
||||||
|
'Y': [
|
||||||
'YACHTS',
|
'YACHTS',
|
||||||
'YAHOO',
|
'YAHOO',
|
||||||
'YAMAXUN',
|
'YAMAXUN',
|
||||||
@@ -1486,6 +1538,8 @@ const tlds = [
|
|||||||
'YOUTUBE',
|
'YOUTUBE',
|
||||||
'YT',
|
'YT',
|
||||||
'YUN',
|
'YUN',
|
||||||
|
],
|
||||||
|
'Z': [
|
||||||
'ZA',
|
'ZA',
|
||||||
'ZAPPOS',
|
'ZAPPOS',
|
||||||
'ZARA',
|
'ZARA',
|
||||||
@@ -1495,4 +1549,5 @@ const tlds = [
|
|||||||
'ZONE',
|
'ZONE',
|
||||||
'ZUERICH',
|
'ZUERICH',
|
||||||
'ZW',
|
'ZW',
|
||||||
];
|
],
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user