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