2013-04-22 49 views
2

有了這個代碼...搞清楚這是什麼正則表達式的字符串替換確實

var url = 'http://www.example.com/this/example/:id?q=help'; 
url = url.replace(/\\:/g, ':').replace(/\/?#$/, '').replace(/\/*$/, ''); 

什麼是每個頂替該怎麼辦?

我意識到它可能對給定的字符串沒有任何影響,但理論上它應該做什麼?

回答

3

只需按照鏈:

  1. 通過:替換的\:所有出現。

  2. 刪除尾部碎片哈希,包括在其之前的可選斜槓。

  3. 刪除所有尾部的斜線。

+0

對於2 ...你是說刪除'/?#'的確切出現還是僅僅出現這些字符? – bflemi3 2013-04-22 02:16:07

+0

2可以在字符串末尾加上'/#'或'#',而不是'/?#'。 [? - MDN](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions#special-questionmark) – 2013-04-22 02:24:28

+0

@ bflemi3對不起,我不夠準確;它會刪除可能以斜槓開頭的尾隨散列。 – 2013-04-22 02:53:42