2011-05-25 62 views
0

如果我是正確的,下面的代碼將只匹配一個完全按照呈現的URL。如何識別包含(域)子字符串的所有URL?

然而,那會是什麼樣子,如果你想找出子域,以及含有各種不同的查詢字符串的URL - 換句話說,包含此域中的任何地址:

var url = /test.com/ 

    if (window.location.href.match(url)){ 
     alert("match!"); 
    } 

回答

0

不,你的模式將實際上匹配所有包含test.com的字符串。

0

常規expresssion /test.com/說,在串

最好使用example.com例如鏈接的任何地方匹配test[ANY CHARACTER]com。所以我用例子替換測試。

一些示例的比賽可能是

http://example.com 
http://examplexcom.xyz 
http://example!com.xyz 
http://example.com?q=123 
http://sub.example.com 
http://fooexample.com 
http://example.com/asdf/123 
http://stackoverflow.com/?site=example.com 
0

我認爲你需要使用/g。/g啓用「全局」匹配。當使用replace()方法,指定此修飾符可替換所有匹配,而不是隻有第一個:

var /test.com/g; 
1

如果你想要這個正則表達式匹配「test.com」你需要難逃「」和「/」都表示正則表達式語法中的任何字符。

轉義:\/test\.com\/

看看爲here更多信息

0

如果你想測試一個URL是有效的,這是我使用的一個。相當複雜,因爲它需要照顧也是數字域&的其他幾個特點:

var urlMatcher = /(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)[email protected])?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?/;

照顧的參數和主持人等......不要問我解釋細節請。

相關問題