2

我想使用 JavaScript 从 href 中删除以正斜杠开头的所有内容。

此片段从 href 中删除以哈希开头的所有内容:

var url = this.href.replace(/#.*/,'');

如何修改它以删除以正斜杠开头的所有内容?

4

1 回答 1

6

也许你想要类似的东西/(\/\/[^\/]+)?\/.*/,然后保持第一次捕获,如果有的话..

'http://stackoverflow.com/questions/16884753/replace-from-url-etc'
    .replace(/(\/\/[^\/]+)?\/.*/, '$1');
// "http://stackoverflow.com"
'stackoverflow.com/questions/16884753/replace-from-url-etc'
    .replace(/(\/\/[^\/]+)?\/.*/, '$1');
// "stackoverflow.com"

(pattern)?表示可选的捕获组
\/\/表示匹配//
[^\/]+表示匹配一个或多个连续的非/
\/表示现在匹配/
.*几乎所有其他内容
$1表示捕获组 1,如果为空,将给出一个空字符串。

在此 RegExp 中,捕获组 1 将是

"http://stackoverflow.com/questions/"
      ^-------$1--------^
于 2013-06-02T16:37:25.443 回答