2012-06-21 81 views
3

我有一個函數,我想要在訪問特定URL路徑時運行,但還有其他頁面位於該路徑下方,我不希望腳本運行。例如:如何在單個「if」語句中壓縮多個「indexOf」條件?

website.com/names  **This is the only URL where the script should run** 
website.com/names/24/places 
website.com/names/648/groups 
website.com/names/7340/questions 

以下數「/名稱/」的範圍在1 & N的長度,但三個後者的例子是僅進一步路徑的URL可能需要。我只希望腳本在用戶位於「website.com/names」頁面時運行,沒有任何「頁面」後面的內容。截至目前,我有功能的「if」語句基於document.URL.indexOf,但感覺有點亂:

if(document.URL.indexOf("names") >= 0 && (document.URL.indexOf("places") == -1 && document.URL.indexOf("groups") == -1 && document.URL.indexOf("questions") == -1)) 

這工作完全正常,但我有一種揮之不去的懷疑,有可能是創建「if」語句的更好/更清晰的方式。有沒有一種方法可以壓縮我的當前行,或者使用不同的代碼來以更簡單的方式執行相同的操作,而不會使事情過於複雜?

回答

5

在有些情況下正則表達式應該使用:)

if (/names$/.test(document.URL)) 

這種情況下只有通過它當「名」是URL的最後一部分,沒有任何東西。 $表示匹配字符串的結尾。

+0

這很奇妙!我知道有更好的方法來做到這一點。 ;) 謝謝您的幫助! – Dion

+0

isnt index比regEx快嗎? – qodeninja

1

爲什麼不使用檢查是在document.URL結束

if (document.URL.indexOf("names") == len(document.URL)-5) 

(除非LEN(document.URL)!=不能假設4 ...)。