如何在javascript中爆炸网址

时间:2015-08-11 14:36:52

标签: javascript node.js

我想删除" / first"字符串并删除网址末尾的_1_1_1。

/foo/blah/tree/first/image_pack-1-1-1

我需要转向的是

/foo/blah/tree/image_pack

这是我所做的,但并不按我的意愿行事。我在某个时候陷入困境。

var fileUrl = "/foo/blah/tree/first/image_pack-1-1-1";
var output = fileUrl.split(/[/ ]+/).pop();
var explode = output.split("-");
console.log(explode[0]);

3 个答案:

答案 0 :(得分:1)

每个人心中的问题是:这是怎么反复出现的? first是变量吗? 1-1-1-1总是在最后吗?如果它们都是常数,那么很容易:

fileUrl.split('-')[0].replace('first/','')

但除此之外,你可能最好为它构建一个函数:

function fileUrl(url, replacements){
    // Allow for replacements to be empty
    replacements = replacements || [];
    // Split at the `-` - a more versatile way would be too complex here.
    url = url.split('-')[0];
    for(var i = 0; i < replacements.length; i++){
        url = url.replace(replacements[i], '');
    }
    // Remove any double slashes that have accumulated
    while(url.indexOf('//').length >= 0) url.replace('//','/');
    return url;
}

现在你可以轻松地做到这一点:

fileUrl('/foo/blah/tree/first/image_pack-1-1-1', ['first']);

function fileUrl(url, replacements){
        replacements = replacements || [];
        url = url.split('-')[0];
        for(var i = 0; i < replacements.length; i++){
            url = url.replace(replacements[i], '');
        }
        while(url.indexOf('//').length >= 0) url.replace('//','/');
        return url;
    }

document.write(fileUrl('/foo/blah/tree/first/image_pack-1-1-1', ['first']));

答案 1 :(得分:1)

不确定你能否真实地在一条线上到达那里。这个怎么样。它分裂第一个破折号,将第一个元素与反斜杠分开,然后将第4个元素拼接出来,无论它被调用了什么。然后再加入它。

var output = fileUrl.split('-')[0].split('/');
output.splice(4, 1);
output = output.join('/'); // /foo/blah/tree/image_pack

DEMO

答案 2 :(得分:0)

会是这样的吗?

&#13;
&#13;
var fileUrl = "/foo/blah/tree/SOMERANDOMTHINGREMOVEDHERE/image_pack-1-1-1";
var newUrl1 = fileUrl.split('-')[0].split('/');
console.log(newUrl1);
var finalUrl = '';
for(var i = 0; i < newUrl1.length; i++) {
    if (i != 4) {
        finalUrl += newUrl1[i] + '/';
    }
}
alert(finalUrl);
&#13;
&#13;
&#13;