2017-03-21 4 views
0

Momentan habe ich ein Formular, in dem Sie eine gültige URL eingeben müssen, obwohl ich keine Möglichkeit habe zu validieren, dass es in einer Erweiterung wie .com oder .co endet. uk etc ..Stellen Sie sicher, dass der String in der Erweiterung endet

Hier ist meine aktuelle Funktion, die dafür sorgt, es ist ein http: //

function addhttp(url) { 
    if (!/^(f|ht)tps?:\/\//i.test(url)) { 
      url = "http://" + url; 
    } 
    return url; 
} 

ich keine Möglichkeit zu überprüfen, das Ende der url Variable, um sicherzustellen, finden ihre a .com etc ...

+0

Mögliches Duplikat von [Wie wird eine URL analysiert?] (Http://stackoverflow.com/questions/6168260/how-to-parse-a-url) –

+1

Eine "gültige URL" braucht * nicht * endet in einer TLD-Erweiterung. – David

+0

Vielleicht möchten Sie sich https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains ansehen, bevor Sie entscheiden, ob Sie sicherstellen möchten, dass die Domain mit einer von mehreren hundert verschiedenen Möglichkeiten endet ... Und das ist nur die oberste Ebene Einsen. Wenn du Sachen wie .co.uk und .org.uk willst und all die nächsten Level-Down-Möglichkeiten dann ... Nun, viel Spaß. – Chris

Antwort

0

Sie können die End-of-Zeichenfolge $ in Ihrem regulären Ausdruck verwenden zu entsprechen, was am Ende eines Strings ist und Kriterien Ihres Spiels setzen, bevor es:

if (/\.(co(\.(uk))?|com|org|net)\/?$/i.test(url)) { 
    //Do something with the URL 
} 

Dieses Beispiel .co Spiele, .com, .org, .net, .co.uk, und jede der vorherigen mit einer Endung /. Natürlich können Sie es an die Enden anpassen, die Sie abdecken möchten.

Verwandte Themen