如何在特定关键字后删除部分网址?

时间:2013-11-01 18:47:55

标签: javascript jquery regex url url-rewriting

例如:

example.com/fun/browse/apples/bananas

example.com/browse/gerbals/cooties

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

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

任何帮助都将不胜感激。

Javascript和jQuery都可以。

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

5 个答案:

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

答案 1 :(得分: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/

答案 2 :(得分:0)

在关键字上拆分网址...

示例:

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.

答案 3 :(得分:0)

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

var url = 'example.com/fun/browse/apples/bananas';
var result = url.replace(/browse\/[a-zA-Z\/]+/, 'browse/gerbals/cooties');

答案 4 :(得分: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;
}