Created
October 14, 2013 22:12
-
-
Save fliptopbox/6983126 to your computer and use it in GitHub Desktop.
Javascript Top Level Domain (TLD) Utility
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*jslint bitwise: true, eqeq: true, sloppy:true, white:true, passfail: false, nomen: false, plusplus: false, undef: true, evil: true */ | |
/*global window, setTimeout, document, console, $, jQuery, self */ | |
/* | |
An object to return the domain name, taking into account | |
the various top-level-domains (TLD) and second-level-domains (SLD) | |
as maintained by mozilla (see: https://wiki.mozilla.org/TLD_List) | |
this list was last modified on 11 January 2010, at 09:32 | |
USAGE: | |
TLD.domain(); // parses window.location.hostname | |
TLD.domain('dev.www.mydomain.no'); // mydomain | |
TLD.hostname(); // sets hostname to window.location.hostname | |
TLD.hostname('mydomain.com'); // sets hostname to mydmain.com | |
TLD.list; // returns JSON Object of TLD list | |
TLD.list.UK; // returns 'UK' segement of TLD list | |
*/ | |
(function () { | |
var TLD = { | |
/* Add your own TLD for localhost use */ | |
'LOCAL': ['A', ''], // eg. mycomputer.local | |
/* | |
Official TLD an SLD | |
'TLD': ['TYPE', 'VARIANTS'] | |
TLD Types: | |
- A Only second level domains (eg. *.com, *.nl) | |
- B Only third level domains (eg. *.co.uk) | |
- C Mixed level domains (e.g. *.be, *.ac.be) | |
- D Other (5) | |
- E Unknown/undecided (59) | |
*/ | |
'AC': ['C', 'com.ac edu.ac gov.ac net.ac mil.ac org.ac'], | |
'AD': ['C', 'ad nom.ad'], | |
'AE': ['C', 'ae net.ae gov.ae org.ae mil.ae sch.ae ac.ae pro.ae name.ae'], | |
'AERO': ['A', 'aero'], | |
'AF': ['C', 'af gov.af edu.af net.af com.af'], | |
'AG': ['C', 'ag com.ag org.ag net.ag co.ag nom.ag'], | |
'AI': ['C', 'ai off.ai com.ai net.ai org.ai'], | |
'AL': ['C', 'gov.al edu.al org.al com.al net.al uniti.al tirana.al soros.al upt.al inima.al'], | |
'AM': ['A', 'am'], | |
'AN': ['C', 'an com.an net.an org.an edu.an'], | |
'AO': ['B', 'co.ao ed.ao gv.ao it.ao og.ao pb.ao'], | |
'AQ': ['E', ''], | |
'AR': ['B', 'com.ar gov.ar int.ar mil.ar net.ar org.ar'], | |
'ARPA': ['B', ''], | |
'AS': ['A', 'as'], | |
'AT': ['C', 'at gv.at ac.at co.at or.at priv.at'], | |
'AU': ['D', 'asn.au com.au net.au id.au org.au csiro.au oz.au info.au conf.au act.au nsw.au nt.au qld.au sa.au tas.au vic.au wa.au For .gov.au edu.au - act nsw nt qld sa tas vic wa'], | |
'AW': ['C', 'aw com.aw'], | |
'AX': ['A', 'ax'], | |
'AZ': ['C', 'az com.az net.az int.az gov.az biz.az org.az edu.az mil.az pp.az name.az info.az'], | |
'BA': ['C', ''], | |
'BB': ['C', 'com.bb edu.bb gov.bb net.bb org.bb'], | |
'BD': ['B', 'com.bd edu.bd net.bd gov.bd org.bd mil.bd'], | |
'BE': ['C', 'ac.be'], | |
'BF': ['C', 'gov.bf'], | |
'BG': ['A', ''], | |
'BH': ['C', ''], | |
'BI': ['C', ''], | |
'BIZ': ['A', ''], | |
'BJ': ['C', ''], | |
'BM': ['C', 'com.bm edu.bm org.bm gov.bm net.bm'], | |
'BN': ['B', 'com.bn edu.bn org.bn net.bn'], | |
'BO': ['C', 'bo com.bo org.bo net.bo gov.bo gob.bo edu.bo tv.bo mil.bo int.bo'], | |
'BR': ['B', 'agr.br am.br art.br edu.br com.br coop.br esp.br far.br fm.br g12.br gov.br imb.br ind.br inf.br mil.br net.br org.br psi.br rec.br srv.br tmp.br tur.br tv.br etc.br adm.br adv.br arq.br ato.br bio.br bmd.br cim.br cng.br cnt.br ecn.br eng.br eti.br fnd.br fot.br fst.br ggf.br jor.br lel.br mat.br med.br mus.br not.br ntr.br odo.br ppg.br pro.br psc.br qsl.br slg.br trd.br vet.br zlg.br dpn.br nom.br'], | |
'BS': ['C', 'bs com.bs net.bs org.bs'], | |
'BT': ['C', 'bt com.bt edu.bt gov.bt net.bt org.bt'], | |
'BV': ['E', ''], | |
'BW': ['C', 'bw co.bw org.bw'], | |
'BY': ['C', 'gov.by mil.by'], | |
'BZ': ['C', ''], | |
'CA': ['C', 'ca ab.ca bc.ca mb.ca nb.ca nf.ca nl.ca ns.ca nt.ca nu.ca on.ca pe.ca qc.ca sk.ca yk.ca'], | |
'CAT': ['A', ''], | |
'CC': ['C', 'cc co.cc'], | |
'CD': ['C', 'cd com.cd net.cd org.cd'], | |
'CF': ['A', ''], | |
'CG': ['E', ''], | |
'CH': ['C', ''], | |
'CI': ['E', ''], | |
'CK': ['C', 'co.ck'], | |
'CL': ['A', ''], | |
'CM': ['E', ''], | |
'CN': ['C', 'cn ac.cn com.cn edu.cn gov.cn net.cn org.cn ah.cn bj.cn cq.cn fj.cn gd.cn gs.cn gz.cn gx.cn ha.cn hb.cn he.cn hi.cn hl.cn hn.cn jl.cn js.cn jx.cn ln.cn nm.cn nx.cn qh.cn sc.cn sd.cn sh.cn sn.cn sx.cn tj.cn xj.cn xz.cn yn.cn zj.cn'], | |
'CO': ['B', 'com.co edu.co org.co gov.co mil.co net.co nom.co'], | |
'COM': ['A', ''], | |
'COOP': ['C', ''], | |
'CR': ['B', 'ac.cr co.cr ed.cr fi.cr go.cr or.cr sa.cr'], | |
'CU': ['C', 'cu com.cu edu.cu org.cu net.cu gov.cu inf.cu'], | |
'CV': ['E', ''], | |
'CX': ['C', 'cx gov.cx'], | |
'CY': ['B', 'com.cy biz.cy info.cy ltd.cy pro.cy net.cy org.cy name.cy tm.cy ac.cy ekloges.cy press.cy parliament.cy'], | |
'CZ': ['A', ''], | |
'DE': ['M', ''], | |
'DJ': ['E', ''], | |
'DK': ['A', ''], | |
'DM': ['C', 'dm com.dm net.dm org.dm edu.dm gov.dm'], | |
'DO': ['B', 'edu.do gov.do gob.do com.do org.do sld.do web.do net.do mil.do art.do'], | |
'DZ': ['C', 'dz com.dz org.dz net.dz gov.dz edu.dz asso.dz pol.dz art.dz'], | |
'EC': ['C', 'ec com.ec info.ec net.ec fin.ec med.ec pro.ec org.ec edu.ec gov.ec mil.ec'], | |
'EDU': ['A', ''], | |
'EE': ['C', 'ee com.ee org.ee fie.ee pri.ee'], | |
'EG': ['B', 'eun.eg edu.eg sci.eg gov.eg com.eg org.eg net.eg mil.eg'], | |
'ER': ['E', ''], | |
'ES': ['C', 'es com.es nom.es org.es gob.es edu.es'], | |
'ET': ['B', 'com.et gov.et org.et edu.et net.et biz.et name.et info.et'], | |
'EU': ['A', ''], | |
'FI': ['C', 'fi aland.fi'], | |
'FJ': ['B', 'biz.fj com.fj info.fj name.fj net.fj org.fj pro.fj ac.fj gov.fj mil.fj school.fj'], | |
'FK': ['B', 'co.fk org.fk gov.fk ac.fk nom.fk net.fk'], | |
'FM': ['E', ''], | |
'FO': ['E', ''], | |
'FR': ['C', 'fr tm.fr asso.fr nom.fr prd.fr presse.fr com.fr gouv.fr'], | |
'GA': ['E', ''], | |
'GB': ['E', ''], | |
'GD': ['E', ''], | |
'GE': ['C', 'ge com.ge edu.ge gov.ge org.ge mil.ge net.ge pvt.ge'], | |
'GF': ['E', ''], | |
'GG': ['C', 'gg co.gg net.gg org.gg'], | |
'GH': ['B', 'com.gh edu.gh gov.gh org.gh mil.gh'], | |
'GI': ['C', 'gi com.gi ltd.gi gov.gi mod.gi edu.gi org.gi'], | |
'GL': ['A', ''], | |
'GM': ['A', ''], | |
'GN': ['B', 'com.gn ac.gn gov.gn org.gn net.gn'], | |
'GOV': ['A', ''], | |
'GP': ['C', 'gp com.gp, net.gp, edu.gp, asso.gp, or org.gp'], | |
'GQ': ['E', ''], | |
'GR': ['C', 'gr com.gr edu.gr net.gr org.gr gov.gr'], | |
'GS': ['E', ''], | |
'GT': ['E', ''], | |
'GU': ['B', ''], | |
'GW': ['E', ''], | |
'GY': ['E', ''], | |
'HK': ['C', 'hk com.hk edu.hk gov.hk idv.hk net.hk org.hk'], | |
'HM': ['E', ''], | |
'HN': ['C', 'hn com.hn edu.hn org.hn net.hn mil.hn gob.hn'], | |
'HR': ['C', 'hr iz.hr from.hr name.hr com.hr'], | |
'HT': ['C', 'ht com.ht net.ht firm.ht shop.ht info.ht pro.ht adult.ht org.ht art.ht pol.ht rel.ht asso.ht perso.ht coop.ht med.ht edu.ht gouv.ht'], | |
'HU': ['C', 'hu co.hu info.hu org.hu priv.hu sport.hu tm.hu 2000.hu agrar.hu bolt.hu casino.hu city.hu erotica.hu erotika.hu film.hu forum.hu games.hu hotel.hu ingatlan.hu jogasz.hu konyvelo.hu lakas.hu media.hu news.hu reklam.hu sex.hu shop.hu suli.hu szex.hu tozsde.hu utazas.hu video.hu'], | |
'ID': ['B', 'ac.id co.id or.id go.id'], | |
'IE': ['C', 'ie gov.ie'], | |
'IL': ['B', 'ac.il co.il org.il net.il k12.il gov.il muni.il idf.il'], | |
'IM': ['D', 'co.im ltd.co.im plc.co.im net.im gov.im org.im nic.im ac.im'], | |
'IN': ['C', 'in co.in firm.in net.in org.in gen.in ind.in nic.in ac.in edu.in res.in gov.in mil.in'], | |
'INFO': ['A', ''], | |
'INT': ['C', ''], | |
'IO': ['C', ''], | |
'IQ': ['E', ''], | |
'IR': ['C', 'ir ac.ir co.ir gov.ir net.ir org.ir sch.ir'], | |
'IS': ['C', ''], | |
'IT': ['D', 'it gov.it'], | |
'JE': ['C', 'je co.je net.je org.je'], | |
'JM': ['B', 'edu.jm gov.jm com.jm net.jm org.jm'], | |
'JO': ['C', 'jo com.jo org.jo net.jo edu.jo gov.jo mil.jo'], | |
'JOBS': ['E', ''], | |
'JP': ['D', 'jp ac.jp ad.jp co.jp ed.jp go.jp gr.jp lg.jp ne.jp or.jp Geo-names: hokkaido.jp aomori.jp iwate.jp miyagi.jp akita.jp yamagata.jp fukushima.jp ibaraki.jp tochigi.jp gunma.jp saitama.jp chiba.jp tokyo.jp kanagawa.jp niigata.jp toyama.jp ishikawa.jp fukui.jp yamanashi.jp nagano.jp gifu.jp shizuoka.jp aichi.jp mie.jp shiga.jp kyoto.jp osaka.jp hyogo.jp nara.jp wakayama.jp tottori.jp shimane.jp okayama.jp hiroshima.jp yamaguchi.jp tokushima.jp kagawa.jp ehime.jp kochi.jp fukuoka.jp saga.jp nagasaki.jp kumamoto.jp oita.jp miyazaki.jp kagoshima.jp okinawa.jp sapporo.jp sendai.jp yokohama.jp kawasaki.jp nagoya.jp kobe.jp kitakyushu.jp'], | |
'KE': ['B', ''], | |
'KG': ['C', ''], | |
'KH': ['B', 'per.kh com.kh edu.kh gov.kh mil.kh net.kh org.kh'], | |
'KI': ['B', ''], | |
'KM': ['E', ''], | |
'KN': ['E', ''], | |
'KR': ['C', 'kr co.kr or.kr'], | |
'KW': ['B', 'com.kw edu.kw gov.kw net.kw org.kw mil.kw'], | |
'KY': ['C', 'ky edu.ky gov.ky com.ky org.ky net.ky'], | |
'KZ': ['B', 'org.kz edu.kz net.kz gov.kz mil.kz com.kz'], | |
'LA': ['A', ''], | |
'LB': ['B', 'net.lb org.lb gov.lb edu.lb com.lb'], | |
'LC': ['B', 'com.lc org.lc edu.lc gov.lc'], | |
'LI': ['C', ''], | |
'LK': ['C', 'lk gov.lk sch.lk net.lk int.lk com.lk org.lk edu.lk ngo.lk soc.lk web.lk ltd.lk assn.lk grp.lk hotel.lk'], | |
'LR': ['B', 'com.lr edu.lr gov.lr org.lr net.lr'], | |
'LS': ['B', 'org.ls co.ls'], | |
'LT': ['C', 'lt gov.lt mil.lt'], | |
'LU': ['C', 'lu gov.lu mil.lu org.lu net.lu'], | |
'LV': ['C', 'lv com.lv edu.lv gov.lv org.lv mil.lv id.lv net.lv asn.lv conf.lv'], | |
'LY': ['C', 'ly com.ly net.ly gov.ly plc.ly edu.ly sch.ly med.ly org.ly id.ly'], | |
'MA': ['C', 'ma co.ma net.ma gov.ma org.ma'], | |
'MC': ['C', 'mc tm.mc asso.mc'], | |
'MD': ['E', ''], | |
'MG': ['C', 'mg org.mg nom.mg gov.mg prd.mg tm.mg com.mg edu.mg mil.mg'], | |
'MH': ['E', ''], | |
'MIL': ['C', ''], | |
'MK': ['C', 'mk com.mk org.mk'], | |
'ML': ['B', ''], | |
'MM': ['E', ''], | |
'MN': ['A', ''], | |
'MO': ['C', 'mo com.mo net.mo org.mo edu.mo gov.mo'], | |
'MOBI': ['C', 'weather.mobi music.mobi'], | |
'MP': ['A', ''], | |
'MQ': ['A', ''], | |
'MR': ['E', ''], | |
'MS': ['E', ''], | |
'MT': ['C', 'mt org.mt com.mt gov.mt edu.mt net.mt'], | |
'MU': ['C', 'mu com.mu co.mu'], | |
'MUSEUM' : [ 'E', ''], | |
'MV': ['B', 'aero.mv biz.mv com.mv coop.mv edu.mv gov.mv info.mv int.mv mil.mv museum.mv name.mv net.mv org.mv pro.mv'], | |
'MW': ['B', 'ac.mw co.mw com.mw coop.mw edu.mw gov.mw int.mw museum.mw net.mw org.mw'], | |
'MX': ['B', 'com.mx net.mx org.mx edu.mx gob.mx'], | |
'MY': ['B', 'com.my net.my org.my gov.my edu.my mil.my name.my'], | |
'MZ': ['E', ''], | |
'NA': ['E', ''], | |
'NAME': ['C', ''], | |
'NC': ['E', ''], | |
'NE': ['E', ''], | |
'NET': ['A', ''], | |
'NF': ['E', ''], | |
'NG': ['B', 'edu.ng com.ng gov.ng org.ng net.ng'], | |
'NI': ['B', ''], | |
'NL': ['C', 'nl 000.nl .999.nl'], | |
'NO': ['C', 'no mil.no stat.no kommune.no herad.no priv.no vgs.no fhs.no museum.no fylkesbibl.no folkebibl.no idrett.no [geo].no gs.[county].no'], | |
'NP': ['B', 'com.np org.np edu.np net.np gov.np mil.np'], | |
'NR': ['C', 'nr gov.nr edu.nr biz.nr info.nr nr org.nr com.nr net.nr'], | |
'NU': ['A', ''], | |
'NZ': ['B', 'ac.nz co.nz cri.nz gen.nz geek.nz govt.nz iwi.nz maori.nz mil.nz net.nz org.nz school.nz'], | |
'OM': ['B', 'com.om co.om edu.om ac.com sch.om gov.om net.om org.om mil.om museum.om biz.om pro.om med.om'], | |
'ORG': ['A', ''], | |
'PA': ['B', 'com.pa ac.pa sld.pa gob.pa edu.pa org.pa net.pa abo.pa ing.pa med.pa nom.pa'], | |
'PE': ['B', 'com.pe org.pe net.pe edu.pe mil.pe gob.pe nom.pe'], | |
'PF': ['C', 'pf com.pf org.pf edu.pf'], | |
'PG': ['B', 'com.pg net.pg'], | |
'PH': ['C', 'ph com.ph gov.ph'], | |
'PK': ['C', 'pk com.pk net.pk edu.pk org.pk fam.pk biz.pk web.pk gov.pk gob.pk gok.pk gon.pk gop.pk gos.pk'], | |
'PL': ['C', 'pl com.pl biz.pl net.pl art.pl edu.pl org.pl ngo.pl gov.pl info.pl mil.pl Geographic: waw.pl warszawa.pl wroc.pl wroclaw.pl krakow.pl poznan.pl lodz.pl gda.pl gdansk.pl slupsk.pl szczecin.pl lublin.pl bialystok.pl olsztyn.pl.torun.pl <a href="/TLD_List:.pl" title="TLD List:.pl">mor</a>'], | |
'PM': ['E', ''], | |
'PN': ['E', ''], | |
'PR': ['C', 'pr biz.pr com.pr edu.pr gov.pr info.pr isla.pr name.pr net.pr org.pr pro.pr'], | |
'PRO': ['C', 'law.pro med.pro cpa.pro'], | |
'PS': ['C', 'ps edu.ps gov.ps sec.ps plo.ps com.ps org.ps net.ps'], | |
'PT': ['C', 'pt com.pt edu.pt gov.pt int.pt net.pt nome.pt org.pt publ.pt'], | |
'PW': ['E', ''], | |
'PY': ['B', 'net.py org.py gov.py edu.py com.py'], | |
'QA': ['B', ''], | |
'RE': ['E', ''], | |
'RO': ['C', 'ro com.ro org.ro tm.ro nt.ro nom.ro info.ro rec.ro arts.ro firm.ro store.ro www.ro'], | |
'RU': ['C', 'ru com.ru net.ru org.ru pp.ru msk.ru int.ru ac.ru'], | |
'RW': ['C', 'rw gov.rw net.rw edu.rw ac.rw com.rw co.rw int.rw mil.rw gouv.rw'], | |
'SA': ['B', 'com.sa edu.sa sch.sa med.sa gov.sa net.sa org.sa pub.sa'], | |
'SB': ['B', 'com.sb gov.sb net.sb edu.sb'], | |
'SC': ['C', 'sc com.sc gov.sc net.sc org.sc edu.sc'], | |
'SD': ['C', 'sd com.sd net.sd org.sd edu.sd med.sd tv.sd gov.sd info.sd'], | |
'SE': ['C', 'se org.se pp.se tm.se brand.se parti.se press.se komforb.se kommunalforbund.se komvux.se lanarb.se lanbib.se naturbruksgymn.se sshn.se fhv.se fhsk.se fh.se mil.se Geographical: ab.se c.se d.se e.se f.se g.se h.se i.se k.se m.se n.se o.se s.se t.se u.se w.se x.se y.se z.se ac.se bd.se'], | |
'SG': ['C', 'sg com.sg net.sg org.sg gov.sg edu.sg per.sg idn.sg'], | |
'SH': ['C', ''], | |
'SI': ['E', ''], | |
'SJ': ['E', ''], | |
'SK': ['E', ''], | |
'SL': ['E', ''], | |
'SM': ['A', ''], | |
'SN': ['A', ''], | |
'SO': ['E', ''], | |
'SR': ['A', ''], | |
'ST': ['E', ''], | |
'SU': ['A', ''], | |
'SV': ['B', 'edu.sv com.sv gob.sv org.sv red.sv'], | |
'SY': ['B', ''], | |
'SZ': ['E', ''], | |
'TC': ['E', ''], | |
'TD': ['E', ''], | |
'TF': ['E', ''], | |
'TG': ['E', ''], | |
'TH': ['B', 'ac.th co.th in.th go.th mi.th or.th net.th'], | |
'TJ': ['C', 'tj ac.tj biz.tj com.tj co.tj edu.tj int.tj name.tj net.tj org.tj web.tj gov.tj go.tj mil.tj'], | |
'TK': ['A', ''], | |
'TL': ['E', ''], | |
'TM': ['E', ''], | |
'TN': ['B', 'com.tn intl.tn gov.tn org.tn ind.tn nat.tn tourism.tn info.tn ens.tn fin.tn net.tn'], | |
'TO': ['C', 'to gov.to'], | |
'TP': ['C', 'tp gov.tp'], | |
'TR': ['D', 'com.tr info.tr biz.tr net.tr org.tr web.tr gen.tr av.tr dr.tr bbs.tr name.tr tel.tr gov.tr bel.tr pol.tr mil.tr k12.tr edu.tr'], | |
'TRAVEL': ['E', ''], | |
'TT': ['C', 'tt co.tt com.tt org.tt net.tt biz.tt info.tt pro.tt name.tt edu.tt gov.tt'], | |
'TV': ['C', 'tv gov.tv'], | |
'TW': ['C', 'tw edu.tw gov.tw mil.tw com.tw net.tw org.tw idv.tw game.tw ebiz.tw club.tw 網路.tw 組織.tw 商業.tw'], | |
'TZ': ['B', 'co.tz ac.tz go.tz or.tz ne.tz'], | |
'UA': ['C', 'ua com.ua gov.ua net.ua edu.ua org.ua cherkassy.ua ck.ua chernigov.ua cn.ua chernovtsy.ua cv.ua crimea.ua dnepropetrovsk.ua dp.ua donetsk.ua dn.ua ivano-frankivsk.ua if.ua kharkov.ua kh.ua kherson.ua ks.ua khmelnitskiy.ua km.ua kiev.ua kv.ua kirovograd.ua kr.ua lugansk.ua lg.ua lutsk.ua lviv.ua nikolaev.ua mk.ua odessa.ua od.ua poltava.ua pl.ua rovno.ua rv.ua sebastopol.ua sumy.ua ternopil.ua te.ua uzhgorod.ua vinnica.ua vn.ua zaporizhzhe.ua zp.ua zhitomir.ua zt.ua'], | |
'UG': ['C', 'ug co.ug ac.ug sc.ug go.ug ne.ug or.ug'], | |
'UK': ['B', 'ac.uk co.uk gov.uk ltd.uk me.uk mil.uk mod.uk net.uk nic.uk nhs.uk org.uk plc.uk police.uk sch.uk'], | |
'UM': ['C', ''], | |
'US': ['C', 'us ak.us al.us ar.us az.us ca.us co.us ct.us dc.us de.us dni.us fed.us fl.us ga.us hi.us ia.us id.us il.us in.us isa.us kids.us ks.us ky.us la.us ma.us md.us me.us mi.us mn.us mo.us ms.us mt.us nc.us nd.us ne.us nh.us nj.us nm.us nsn.us nv.us ny.us oh.us ok.us or.us pa.us ri.us sc.us sd.us tn.us tx.us ut.us vt.us va.us wa.us wi.us wv.us wy.us'], | |
'UY': ['B', 'edu.uy gub.uy org.uy com.uy net.uy mil.uy'], | |
'UZ': ['E', ''], | |
'VA': ['B', 'vatican.va'], | |
'VC': ['E', ''], | |
'VE': ['B', 'com.ve net.ve org.ve info.ve co.ve web.ve'], | |
'VG': ['E', ''], | |
'VI': ['C', 'vi com.vi org.vi edu.vi gov.vi'], | |
'VN': ['C', 'vn com.vn net.vn org.vn edu.vn gov.vn int.vn ac.vn biz.vn info.vn name.vn pro.vn health.vn'], | |
'VU': ['E', ''], | |
'WF': ['E', ''], | |
'WS': ['A', ''], | |
'YE': ['B', ''], | |
'YT': ['E', ''], | |
'YU': ['B', 'ac.yu co.yu org.yu edu.yu'], | |
'ZA': ['B', 'ac.za city.za co.za edu.za gov.za law.za mil.za nom.za org.za school.za alt.za net.za ngo.za tm.za web.za'], | |
'ZM': ['B', 'co.zm org.zm gov.zm sch.zm ac.zm'], | |
'ZW': ['B', 'co.zw org.zw gov.zw ac.zw'] | |
}, | |
ns = 'TLD', | |
parts, | |
root, | |
hostname, | |
getHostNameArray = function (value) { | |
parts = null; | |
root = null; | |
hostname = null; | |
value = (value || window.location.hostname).toLowerCase(); | |
hostname = value; | |
return (parts = value.split('.').reverse()); | |
}, | |
getDomainName = function (value) { | |
if (!parts || (value && hostname !== value)) { parts = getHostNameArray(value); } | |
root = parts[0].toUpperCase(); | |
var meta = TLD[root], | |
type = meta[0], | |
perms = (meta[1]).split(' '), | |
match = [], | |
rex = null, | |
level = 1, | |
i = 0, | |
n = perms.length; | |
// console.log(hostname, root, type, perms); | |
for (i; i < n; i += 1) { | |
var variant = perms[i]; | |
variant = variant.replace(/^\./, ''); // strip prefix '.' | |
// replace '.' with \W word boundry match (remember . === any single character) | |
rex = new RegExp('\\W' + variant.replace('.', '\\W') + '$', 'gi'); | |
if (rex.test(hostname)) { | |
match.push(variant.toLowerCase().split('.').length); | |
} | |
} | |
level = match.slice(-1)[0] || 1; | |
// console.log(level, match, parts[level]); | |
return parts[level]; | |
}; | |
window[ns] = { | |
'hostname': getHostNameArray, | |
'domain': getDomainName, | |
'list': TLD | |
}; | |
}()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment