2010-03-26 3 views
6

Ho utilizzato l'eccellente strumento gskinner.com/RegExr/ per testare la regex della corrispondenza delle stringhe, ma non riesco a capire come implementarlo nel mio file JavaScript per restituire true o false.Come posso usare JavaScript per abbinare una stringa all'interno dell'URL attuale della finestra in cui mi trovo?

Il codice che ho è il seguente:

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

su un URL come http://stackoverflow.com/questions/ask questo sarebbe partita (secondo RegExr) http://stackoverflow.

Quindi questo è grande perché voglio provare corrispondenza della corrente window.location a quella stringa, ma il problema che sto avendo è che questo script JavaScript non funziona:

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

Qualche idea su cosa sto facendo male qui?

Grazie per la lettura.

Jannis

risposta

2

Se si desidera verificare nome di dominio (host) window.location.host ti dà quello che ti serve (con il sottodominio)

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

Funziona alla grande! Grazie mille. – Jannis

3

window.location non è una stringa; è un oggetto. Utilizzare window.location.href

+0

Grazie per il vostro aiuto, io non riuscivo a ottenere questo lavoro così sono andato con La soluzione di Pawel, ma ancora grazie. – Jannis

+0

Anche questa è una buona risposta. window.location è un oggetto, .href nad .host sono le sue proprietà rappresentate come stringhe. Puoi usare uno di questi, ma ho pensato che location.host è migliore quando sei interessato solo a questa parte della stringa di posizione :) – pawel

+0

ah, ora ha senso per me, quindi l'href restituirà l'url completo mentre l'host andrà solo fino a 'http: // sub.domain.ext /'? – Jannis