正斜杠后从URL替换所有内容

时间:2013-06-02 16:21:54

标签: javascript url

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

此代码段从href中删除以散列开头的所有内容:

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

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

1 个答案:

答案 0 :(得分: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--------^