我想删除" / 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]);
答案 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
答案 2 :(得分:0)
会是这样的吗?
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;