我有一个 URL ,例如:/path/id/anotherpath/0
从上面的 URL 中,我必须检查anotherpath
是否存在,并从/anotherpath
中拆分 URL 的一部分,所以我想仅从 URL 获得/anotherpath/0
。
我尝试使用:
const path = this.props.location.pathname;
if (path.indexOf(anotherpath > 0) {
path = path.split('anotherpath');
}
但是上面的代码给了我一个分开的 URL ,例如/path/id
和/0
。我怎样才能解决这个问题?我想将 URL 从anotherpath
转到 URL 的最后一部分。
答案 0 :(得分:0)
您可以尝试使用正则表达式。
Preparator.__init__(self,targets,default_targets=['armv7','arm64','x86','x86_64'], virtual_targets=android_virtual_targets)
答案 1 :(得分:0)
好吧,一种解决方案是使用indexOf("anotherpath")
中的Array.slice()
const path = "/path/id/anotherpath/0";
const idx = path.indexOf("anotherpath");
if (idx > 0)
console.log(path.slice(idx - 1));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
另一种替代方法是使用String.match():
const path = "/path/id/anotherpath/0";
let res = path.match(/\/anotherpath.*/);
console.log(res ? res[0] : "not found");
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
答案 2 :(得分:0)
如果我正确理解了这个问题,则path.substring(path.indexOf(“ / anotherpath”))会为您提供所需的字符串部分
在重新分配路径时,还需要声明路径为let
答案 3 :(得分:0)
您可以使用类似于以下的功能。此函数接收路径作为参数,如果您要查找的标记存在,它将被剪切并仅返回您感兴趣的部分,否则将返回完整路径
function getSubpath(path) {
if (!path.includes('anotherpath')) return path;
const tokens = path.split('/');
const index = tokens.findIndex(token => token === 'anotherpath');
tokens.splice(0, index);
return `/${tokens.join('/')}`;
}
请尝试以下实现
// having these variables
const path0 = '/path/id/0';
const path1 = '/path/id/anotherpath/0';
function getSubpath(path) {
if (!path.includes('anotherpath')) return path;
const tokens = path.split('/');
const index = tokens.findIndex(token => token === 'anotherpath');
tokens.splice(0, index);
return `/${tokens.join('/')}`;
}
console.log(getSubpath(path0));
console.log(getSubpath(path1));