2013-04-22 38 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