2010-03-26 14 views
6

Tôi đã sử dụng công cụ gskinner.com/RegExr/ xuất sắc để kiểm tra chuỗi regex phù hợp của tôi nhưng tôi không thể tìm ra cách triển khai điều này vào tệp JavaScript của mình để trả về đúng hoặc sai.Tôi làm cách nào để sử dụng JavaScript để khớp với chuỗi bên trong URL hiện tại của cửa sổ mà tôi đang sử dụng?

Mã Tôi có được như sau:

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

trên url như http://stackoverflow.com/questions/ask này sẽ phù hợp (theo RegExr) http://stackoverflow.

Vì vậy, đây là rất tốt vì tôi muốn thử phù hợp với hiện tại window.location cho chuỗi đó, nhưng vấn đề tôi gặp phải là tập lệnh JavaScript này không hoạt động:

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

Bất kỳ ý tưởng về những gì tôi đang làm sai ở đây?

Cảm ơn bạn đã đọc.

Jannis

Trả lời

2

Nếu bạn muốn kiểm tra tên miền (host) window.location.host mang đến cho bạn những gì bạn cần (với tên miền phụ)

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

Công trình này tuyệt vời! Cảm ơn bạn rất nhiều. – Jannis

3

window.location không phải là một chuỗi; đó là một đối tượng. Sử dụng window.location.href

+0

Nhờ sự giúp đỡ của bạn, tôi có thể không hoàn toàn được điều này để làm việc vì vậy tôi đã đi với Giải pháp của Pawel, nhưng cảm ơn một lần nữa. – Jannis

+0

Đây cũng là câu trả lời hay. window.location là một đối tượng, .href nad .host là các thuộc tính của nó được biểu diễn dưới dạng chuỗi. Bạn có thể sử dụng bất kỳ cái nào trong số này, nhưng tôi nghĩ location.host là tốt hơn khi bạn chỉ quan tâm đến phần này của chuỗi vị trí :) – pawel

+0

ah, bây giờ nó có ý nghĩa với tôi, vì vậy href sẽ trả về url đầy đủ trong khi host sẽ chỉ đi xa như 'http: // sub.domain.ext /'? – Jannis

Các vấn đề liên quan