2015-01-21 34 views
-2

我想重定向時,URL不匹配某個正則表達式。JavaScript的URL重定向與正則表達式

我們的客戶與一家非常黑幕的SEO公司簽約 - ReachLocal。他們將他們的AdWords廣告系列發送到我們的網站。使用js來更改一些關鍵信息,如電話號碼,mailto-info,分析按鈕,...

因爲我們的網站顯示在另一個網址中,所以必須在源代碼中檢查url並在其他域上重定向。

這是我走到這一步:

<script type="text/javascript"> 
var url = window.location.href; 
if (url.match(/rtrk\.be/);) {  => the use domain rtrk.be 
window.location.href = 'http://example.com'; 
} 
</script> 

我不是很喜歡這樣的js的幫助深表感謝。

+0

錯字在找你'if',不要把一個分號有'如果(url.match(/rtrk\.be /))' – Nano 2015-01-21 11:53:25

+1

瞭解如何使用**開發者控制檯**。它會記錄你的錯誤 – 2015-01-21 11:54:03

+0

你應該使用!運營商。另外@Nano我認爲這應該不是一個評論的答案。 – CyberFox 2015-01-21 11:54:32

回答

0

你有分號誤入歧途。

你不使用「contains()」的任何原因?反正這是我的答案。

if(location.href.contains("rtrk.be")==false) 
    location.href = "punk.com"; 
+0

本地工作就像一個魅力,但不能從SearchLocal網址重定向。如果你想看看我的情況:在谷歌上點擊'bermaxbvba.be'的廣告,輸入'bermax'。 – user2245052 2015-01-21 12:33:34

+0

我輸入了rtrk.be,我被重定向到「https://www.reachlocal.com/us/en/rtrk.be」。我可以看到這個「contains()」規則存在問題。但仔細觀察位置對象,我發現有一個名爲「主機」的屬性更安全。 – CyberFox 2015-01-21 14:41:44

+0

if(location.host!==「rtrk.be」) location.href =「punk.com」; – CyberFox 2015-01-21 14:42:08

0

我更喜歡使用測試:

if (!/rtrk\.be/.test(url)) {  => the use domain rtrk.be 
    window.location.href = 'http://example.com'; 
} 

你的錯誤:

  • 刪除 ';'從if語句
  • 您正則表達式的檢查,如果URL是匹配rtrk.be,但你需要導航時,URL不匹配,所以你缺少否定(在正則表達式或if語句)