2010-03-26 8 views
6

Ich habe das ausgezeichnete Tool gskinner.com/RegExr/ verwendet, um meine Zeichenkette zu testen, die mit Regex übereinstimmt, aber ich kann nicht herausfinden, wie ich dies in meine JavaScript-Datei implementieren kann, um wahr oder falsch zurückzugeben.Wie kann ich JavaScript verwenden, um eine Zeichenfolge in der aktuellen URL des Fensters, in dem ich mich befinde, abzugleichen?

Der Code ich habe, ist wie folgt:

^(http:)\/\/(.+\.)?(stackoverflow)\. 

auf einer URL wie http://stackoverflow.com/questions/ask dies (nach RegExr) http://stackoverflow.

Das ist also groß passen würde, weil ich die aktuelle versuchen wollen passende window.location zu dieser Zeichenfolge, aber das Problem, das ich habe, ist, dass dieses Skript JavaScript nicht funktioniert:

var url = window.location; 
if (url.match(/^(http:)\/\/(.+\.)?(stackoverflow)\./)) 
{ 
    alert('this works'); 
}; 

Irgendwelche Ideen, was ich hier falsch mache?

Danke fürs Lesen.

Jannis

Antwort

2

Wenn Sie Domain-Namen testen möchten (Host) window.location.host gibt Ihnen, was Sie brauchen (mit Sub-Domain)

if(/^(.*\.)?stackoverflow\./.test(window.location.host)){ 
    alert('this works'); 
} 
+0

Das funktioniert super! Vielen Dank. – Jannis

3

window.location ist kein String; es ist ein Objekt. Verwenden Sie window.location.href

+0

Danke für Ihre Hilfe, ich konnte nicht recht bekommen dies so zu arbeiten, ich ging mit Pawels Lösung, aber trotzdem nochmals vielen Dank. – Jannis

+0

Das ist auch eine gute Antwort. window.location ist ein Objekt, .href nad .host sind seine Eigenschaften, die als Strings dargestellt werden. Sie können jede von diesen verwenden, aber ich dachte location.host ist besser, wenn Sie nur an diesem Teil der Ortszeichenkette interessiert sind :) – pawel

+0

ah, jetzt macht es Sinn für mich, so wird die href die volle URL während der Host zurückgeben wird nur so weit gehen wie 'http: // sub.domain.ext /'? – Jannis