2016-09-07 51 views
0

我是新來的JavaScript,但我想,如果它一定URL匹配與下面的代碼有條件地顯示頁面上的按鈕/鏈接:如何在javascript中使用lastIndexOf匹配url?

LinkNode = document.getElementById("csv"); 
var url = document.documentURI 
    if(document.documentURI.substr(url.lastIndexOf("/"+1)) == "/colleagues"){ 
    LinkNode.style.visibility= "visible"; 
    } 
    else{ 
    LinkNode.style.visibility= "hidden"; 
} 

誰能指教一下我做錯了或如何匹配我的網址結尾在「/同事」,因爲這不匹配?使用正則表達式可能更容易嗎?

我該如何測試以查看document.documentURI.substr(url.lastIndexOf(「/」+ 1))實際上正在產生什麼?

+0

要麼刪除+1,要麼將加號1放在lastIndexOf括號外,並更改比較字符串。 –

回答

2

@MattE只需更新您的代碼

document.documentURI.substr(url.lastIndexOf("/")) == "/colleagues" 
+0

謝謝,這項工作現在完美 – MattE

1

如果您不需要非常精確,你可以使用這種方式:

if (document.documentURI.indexOf("/colleagues") !== -1) { 
    LinkNode.style.visibility= "visible"; 
} 
else { 
    LinkNode.style.visibility= "hidden"; 
} 

注意

這隻會發現在你的整個URI,如果「/同事」存在。這意味着,它不會在域中找到它,因爲它具有「/」。但它可能是你有「www.domain.com/colleagues/sample」或「www.domain.com/sample/colleagues」,它會輸入如果在案件

+0

謝謝,這也適用,但在我的情況下,我會在其他頁面上的字符串的其他部分的'同事',並不想顯示鏈接...但是,這是真正有用的知道:-) – MattE

+0

沒問題。我發現這個帖子在stackoverflow,爲了回答你的問題「是否可能更容易使用正則表達式?」 http://stackoverflow.com/questions/273789/is-there-a-version-of-javascripts-string-indexof-that-allows-for-regular-expr – Mayday

1

你可以使用正則表達式匹配:如果不存在匹配

var urlIndex = url.search("\/colleagues$"); 
if (urlIndex !== -1) { 
    LinkNode.style.visibility= "visible"; 
} else { 
    LinkNode.style.visibility= "hidden"; 
} 

string.search方法返回第一匹配的索引,或-1

用於測試,您可以使用調試工具,在幾乎每一個桌面瀏覽器是可用的,並且在線路設置斷點要檢查 另一種方法是增加console.log('some text', someValue)並查看瀏覽器控制檯輸出

+0

這也工作表示感謝,欣賞關於故障排除的建議: - ) – MattE