-1

例如:

example.com/fun/browse/apples/bananas

example.com/browse/gerbals/cooties

如何找到关键字“browse”,无论它在 url 中的什么位置,并删除以下 url 部分。在上述情况下,这将是“苹果”和“gerbals”

我尝试通过“/”将其拆分并获取 indexOf 浏览,然后删除下一项,但我似乎无法将所有内容连接在一起,因为这会在新 url 中创建一个双“//”。

任何帮助,将不胜感激。

Javascript 和 jQuery 都可以。

注意:我不想删除 url 的任何其他部分。我想保留一切。我只想在浏览后立即删除部分 url。

4

5 回答 5

1

您的问题尚不清楚,但让我们尝试一下:

var s = 'example.com/fun/browse/apples/bananas';
s.replace(/(\/browse)\/[^\/]+/, '$1'); // "example.com/fun/browse/bananas"

还要检查这个助手:

function removeAfter(s, keyword) {
    return s.replace(
        new RegExp('(\/' + keyword + ')\/[^\/]+'), '$1'
    );
}

用法 :

var s = 'example.com/browse/gerbals/cooties';
removeAfter(s, 'browse'); // "example.com/browse/cooties"
removeAfter(s, 'gerbals'); // "example.com/browse/gerbals"

演示:http: //jsfiddle.net/wared/VRJtL/

于 2013-11-01T19:02:24.983 回答
1

使用 .splice() 删除浏览器并重新加入它。

var arr = "example.com/fun/browse/apples/bananas".split('/'); 
var index = arr.indexOf("browse"); 
arr.splice(index+1,1); //removes apples
var URL = arr.join('/'); //joins back

result: "example.com/fun/browse/bananas"
于 2013-11-01T18:50:18.423 回答
0

如果您不想删除“有趣”的部分,那真的很简单:

var url = 'example.com/fun/browse/apples/bananas';
var result = url.replace(/browse\/[a-zA-Z\/]+/, 'browse/gerbals/cooties');
于 2013-11-01T19:02:06.683 回答
0

在关键字上拆分 URL...

例子:

var url = "http://www.foo.com/bar/alpha/beta";
var keyword = "alpha";
var result = url.split(keyword)[0];
//result = "http://www.foo.com/bar/" + keyword;

//adding the keyword is if you need the keyword in your response.
于 2013-11-01T18:49:49.040 回答
0

我会抛出另一个选项,只是为了让它变得有趣。:)

var url = "http://example.com/fun/browse/apples/bananas";
var targetWord = "browse";
var regexPattern = new RegExp("(^.*" + targetWord + "/?)[^/]*/?(.*$)");
var newURL = "";

var matchedURLparts = regexPattern.exec(url); 
if (matchedURLparts) {
    newURL = (matchedURLparts.length > 2) ? matchedURLparts[1] + matchedURLparts[2] : matchedURLparts[1];
}
else {
    newURL = url;
}
于 2013-11-01T19:18:13.660 回答