删除倒数第二个索引后的其余字符串
Remove rest of string after the second to last index of
我对 JS 比较陌生并且很困惑。我有一个 URL 字符串:例如 https://a/b/c/d/e/f. These are all dynamic characters and change often (could be https://x/s/g/e/h/d)在某些情况下,我只想删除 f,我在其中使用了 LastIndexOf。在其他情况下,我想删除最后一个和倒数第二个 EG:e/f。如何才能成功做到这一点?我尝试使用拆分,但出于某种原因,这只是将 '/' 替换为 ','。
工作示例
var url = https://a/b/c/d/e/f
var new = url.substring(0, url.lastIndexOf('/') +1);
当前拆分 e/f 示例
var new = url.split('/')
console.log(new[new.length -2]);
打印为:https:,a,b,c,d,e,f,
这是一个选项,使用正则表达式替换。仅删除最终路径:
url = "https://a/b/c/d/e/f";
url = url.replace(/\/[^/]+$/mg, "");
删除最后的两个路径:
url = "https://a/b/c/d/e/f";
url = url.replace(/\/[^/]+\/[^/]+$/mg, "");
给你
const str = 'https://a/b/c/d/e/f'
function removeSegments(url, times) {
const segments = url.split('/')
return segments.slice(0, segments.length - times).join('/')
}
console.log(removeSegments(str, 1)) // 'https://a/b/c/d/e'
console.log(removeSegments(str, 2)) // 'https://a/b/c/d'
您可以使用 URL API 轻松做到这一点。
你需要用/
分割路径名,然后用Array#slice
只取你想要的部分。然后通过 /
.
再次加入这些
这是一个例子:
var url = new URL('https://a/b/c/d/e/f');
console.log(
url.origin +
url.pathname.split('/').slice(0, -2).join('/')
);
split() 创建一个在 split 函数中传递的子字符串数组。
所以当你写
url.split('/') 它将创建一个以 / 作为分隔符的子字符串数组。
答案可能是:
获取元素的索引,直到您想要删除字符串时使用:
var index = indexOf(x)
然后在函数中传递。
var str1 = str.substr(0, index)
str1 将是您的答案
您可以使用:
var num;
for ( var i=0; i< num; i++) {
url= url.substring(0, url.lastIndexOf('/'));
}
我对 JS 比较陌生并且很困惑。我有一个 URL 字符串:例如 https://a/b/c/d/e/f. These are all dynamic characters and change often (could be https://x/s/g/e/h/d)在某些情况下,我只想删除 f,我在其中使用了 LastIndexOf。在其他情况下,我想删除最后一个和倒数第二个 EG:e/f。如何才能成功做到这一点?我尝试使用拆分,但出于某种原因,这只是将 '/' 替换为 ','。
工作示例
var url = https://a/b/c/d/e/f
var new = url.substring(0, url.lastIndexOf('/') +1);
当前拆分 e/f 示例
var new = url.split('/')
console.log(new[new.length -2]);
打印为:https:,a,b,c,d,e,f,
这是一个选项,使用正则表达式替换。仅删除最终路径:
url = "https://a/b/c/d/e/f";
url = url.replace(/\/[^/]+$/mg, "");
删除最后的两个路径:
url = "https://a/b/c/d/e/f";
url = url.replace(/\/[^/]+\/[^/]+$/mg, "");
给你
const str = 'https://a/b/c/d/e/f'
function removeSegments(url, times) {
const segments = url.split('/')
return segments.slice(0, segments.length - times).join('/')
}
console.log(removeSegments(str, 1)) // 'https://a/b/c/d/e'
console.log(removeSegments(str, 2)) // 'https://a/b/c/d'
您可以使用 URL API 轻松做到这一点。
你需要用/
分割路径名,然后用Array#slice
只取你想要的部分。然后通过 /
.
这是一个例子:
var url = new URL('https://a/b/c/d/e/f');
console.log(
url.origin +
url.pathname.split('/').slice(0, -2).join('/')
);
split() 创建一个在 split 函数中传递的子字符串数组。 所以当你写
url.split('/') 它将创建一个以 / 作为分隔符的子字符串数组。
答案可能是:
获取元素的索引,直到您想要删除字符串时使用:
var index = indexOf(x)
然后在函数中传递。
var str1 = str.substr(0, index)
str1 将是您的答案
您可以使用:
var num;
for ( var i=0; i< num; i++) {
url= url.substring(0, url.lastIndexOf('/'));
}