簡體   English   中英

我如何從第三個“ /”之后獲取字符串

[英]How do i get the string from after the third “/”

對編程完全陌生,所以請原諒這個愚蠢的問題。 我有這個網址http://www.blahblah.com/some/thing/blah ..

現在,我需要出現在第三個“ /”之后的字符串,即只是“ / some / thing”。我不想從反向開始,因為每個頁面的URL不同,但是協議和主機名相同..有沒有辦法我可以使用Javascript提取“ / some / thing”呢。感謝任何幫助..謝謝!

var part = string.split('/')[2]

或更復雜的是:

var string = "/a/b/c/d/e/d"
var arr1 = string.split('/')
var arr2 = []
for (i in  arr1)
{
  if (arr1[i].length > 0)
     arr2.push(arr1[i])
}
var part = arr2[2]

使用string.split方法: http : //www.w3schools.com/jsref/jsref_split.asp

var str = "www.blah.com/blah/blah/thing/blah.php";
var arrayOfString = str.split("/");
alert(arrayOfString[2]); //coming back to do regex/substring for you

玩得開心! :)

順便說一下...如果您是Web開發的新手,www.w3schools.com對我來說非常好:)

因此,要響應您的編輯,您需要執行以下操作:

假設以上已經:

alert(arrayOfString.slice(3).join("/"));

好的,可以根據實際需要在這里修復它。.但是就像我說的那樣,請訪問http://www.w3schools.com,它確實教會了我一些良好的基礎知識。

要修復注釋中的失敗情況,請在split / slice / join之前執行以下操作:

if (str.substring(0,1) == "/"){ str = str.substring(1);}

我會在這里使用一個簡單的正則表達式。

一種獲取第三個“ /” 之后的內容的方法是將其與之前的所有內容一起丟棄

基本思路:

"/a/b/c/d/e/f".replace(/.*?\/.*?\/s.*?\//, "")
// -> "c/d/e/f"

備選方案1,以減少重復:

"/a/b/c/d/e/f".replace(/(?:.*?\/){3}/, "")     

備選方案2,如果輸入內容可以包含換行符:

"/a/b/c/d/e/f".replace(/(?:[^\/]*\/){3}/, "")

*? 限定詞的意思是“別貪心” . 不會跳過/ 在否定字符類的情況下不需要它,因為[^\\/]永遠不會匹配/

當然,這可以用“不太通用”的形式來寫,因為真正的目的只是為了擺脫URI的協議/域部分( /的數目只是觀察到的關系):

"http://foo/a/b/c/d/e/f".replace(/https?:\/\/[^\/]*\/?/i, "")
// -> "a/b/c/d/e/f"

請注意,最后一個\\/有一個? 在此之后,它將為“ http:// foo”返回“”,而i則將與HTTP://匹配(如果出於某種奇怪的原因使用了HTTP:// ,當然是完全可選的)。

"HTTPS://foo".replace(/https?:\/\/[^\/]*\/?/i, "")
// -> ""

編碼愉快!


注意:以上所有正則表達式都將在問題3nd / 之后提取內容。 它們將需要稍作修改以將3rd / 包含在結果中。 同樣,它有助於不問XY問題。

var str = 'http://www.blahblah.com/some/thing/blah'
var afterThirdSlash = str.split('/').slice(3).join('/')

split返回一個數組,該數組是每個/字符上拆分的字符串。 slice從第四個元素開始選擇數組的一部分(因為數組從零開始),因為它對應於第三個斜杠之后的部分。 join通過重新插入件一起這些元素回/ 這就是你想要的嗎?

如果您知道網址以“ http://www.blahblah.com/”開頭,為什么不使用url.substring(24)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM