如何在javascript中分解url

如何在javascript中分解url,javascript,node.js,Javascript,Node.js,我想删除“/first”字符串并删除url末尾的_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.spli

我想删除“/first”字符串并删除url末尾的_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]);

每个人心中的问题都是:这有多频繁?
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;
}
函数文件url(url,替换){
替换=替换| |[];
url=url.split('-')[0];
对于(变量i=0;i=0)url.replace(“/”,“/”);
返回url;
}

document.write(fileUrl('/foo/blah/tree/first/image_-pack-1-1-1',['first'])您喜欢这项工作吗

var fileUrl=“/foo/blah/tree/sometrandomThingRemovedHere/image_pack-1-1-1”;
var newUrl1=fileUrl.split('-')[0].split('/');
console.log(newUrl1);
var finalUrl=“”;
for(var i=0;i警惕(最终)不确定您是否可以在一行中实际到达那里。这个怎么样。它根据第一个破折号拆分,根据反斜线拆分第一个元素,然后直接拼接第四个元素,不管它叫什么。然后再把它连接起来

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

说真的,它只是
fileUrl.split('-')[0]
…不,它不是。再读一遍这个问题。/第一个/是常数吗?会不会是/秒/?会不会
/first
-1-1-1
总是一样?@something来吧。不要打架。谢谢你的回答,但是第一个一直在变,而且-1-1-1数字在变,但是他们的位置总是一样的@somethinghere@Profstyle这就是为什么我写了一个函数,允许
首先
随时更改。只需填写正确的字符串,它就会删除您想要删除的任何内容。谢谢@something此处,但安迪的解决方案对我更有效,谢谢您的帮助。非常感谢@Andy,这是现成的。顺致敬意,
var output = fileUrl.split('-')[0].split('/');
output.splice(4, 1);
output = output.join('/'); // /foo/blah/tree/image_pack