3

我有像这样的网址

http://www.domain.com/dir/dir2/dir3/dir4/#tag

或者

http://www.domain.com/dir/dir2/dir3/dir4

现在我只需要获取 dir3 之前的 url,之后什么都不需要……(或«字符串中第六个斜杠之前的所有内容»)

http://www.domain.com/dir/dir2/dir3/

这怎么能用 JavaScript 来完成呢?

4

2 回答 2

6

尝试这个:

'http://www.domain.com/dir/dir2/dir3/dir4/#tag'
  .split('/')
  .slice(0,6).join('/'));
 //=> http://www.domain.com/dir/dir2/dir3

或辅助功能:

function cutUrl(url,n){
    return url.split('/').slice(0,n).join('/'));
}
于 2013-01-06T13:50:23.677 回答
4

这里不需要 jQuery,JavaScript 支持正则表达式:

"http://www.domain.com/dir/dir2/dir3/dir4".match(/([^/]*\/){6}/)[0]

一种更安全的方法是(在模式不匹配的情况下):

function cutUrl(str) {
    var matched = str.match(/([^/]*\/){6}/);
    return matched ? matched[0] : str/* or null if you wish */;
}

然后调用cutUrl("http://www.domain.com/dir/dir2/dir3/dir4")

于 2013-01-06T13:52:32.990 回答