2010-04-01 26 views
0

我們有一個JavaScript函數,用於在內部跟蹤頁面統計信息。但是,它多次報告的網址包括搜索結果頁面的頁碼,我們不希望這些頁面被報告。這是報告的頁面形式:JavaScript要剝去頁面的URL

http://www.test.com/directory1/2 
http://www.test.com/directory1/subdirectory1/15 
http://www.test.com/directory3/1113 

相反,我們希望上述報告爲:

http://www.test.com/directory1 
http://www.test.com/directory1/subdirectory1 
http://www.test.com/directory3 

請注意,編號爲「目錄」和「子目錄的名字上面只是出於示例目的,並且實際的子目錄名稱都是不同的,不一定包括目錄名稱末尾的數字,並且可以有很多級別的深度。

目前我們的JavaScript函數生成利用代碼以下網址:

var page = location.hostname+document.location.pathname; 

我相信我們需要使用JavaScript替換功能在一些正則表達式組合,但我在一個完整的無所適從那會看起來像。任何幫助將非常感激!

在此先感謝!

回答

0

您可以使用此正則表達式:

document.location.pathname.replace(/\/\d+$/, ""); 

不像substringlastIndexOf解決方案,這將剝去如果路徑的終點它只包含數字。

+0

@安迪 - 謝謝,這正是我需要的! – 2010-04-01 17:29:40

0

我認爲你需要使用.htaccess和重寫規則來改變url的外觀,但是我仍然期待着看看這是否適用於javascript。當我發現將重新發布更多

編輯*

的lastIndexOf只會給你的位置,爲此你仍然需要更換。例如:

var temp = page.substring(page.lastIndexOf(「/」),page.length-1);

page = page.replace(temp,「」);

不幸的是我在編碼方面並不那麼先進,所以在其他答案中可能會有更高效的編碼。對於我最初的答覆帶來的不便,我很抱歉。

+0

@Justin - 我不希望真正改變頁面的網址爲網站訪問者。相反,我想更新我們的內部跟蹤JavaScript,以便在將任何包含這些URL的網址報告給我們的後端跟蹤腳本時剝離它們的頁碼。 JavaScript調用腳本並報告頁面URL。這應該是一個相對簡單的正則表達式,但我不確定它是什麼樣的。謝謝你的幫助! – 2010-04-01 17:26:12

+0

@Russell lastIndexOf只會給你的位置,因此你仍然需要更換。例如:var temp = page.substring(page.lastIndexOf(「/」),page.length-1); page = page.replace(temp,「」); 不幸的是,我在編碼方面並不那麼先進,所以在其他答案中可能會有更高效的編碼。對於我最初的答覆帶來的不便,我很抱歉。 – 2010-04-01 17:44:44

0

你可以做的是找到「/」的最後一個索引,然後使用子字符串函數。

4

我想你想要這樣的:

var page = location.href.substring(0,location.href.lastIndexOf("/"));

0

如何:

var page = location.split("/"); 
page.pop(); 
page = page.join("/");