使用 window.location.pathname 我得到“/Mobile/Evol/12-20-2011”。
使用 Javascript,如何在“Evol/”之后删除所有内容,以便获得“/Mobile/Evol/”?
使用 window.location.pathname 我得到“/Mobile/Evol/12-20-2011”。
使用 Javascript,如何在“Evol/”之后删除所有内容,以便获得“/Mobile/Evol/”?
您可以使用substring()
和lastIndexOf()
功能的组合来轻松地切断最后一个之后的所有内容/
:
uri = "/Mobile/Evol/12-20-2011";
newUri = uri.substring(0, uri.lastIndexOf('/'));
正如@josh 指出的那样,如果“/ Evol”之后还有更多目录,这将失败。您可以通过搜索字符串“Evol/”然后将其长度添加回子字符串末尾来解决此问题:
dir = "Evol/";
newUri = uri.substring(0, uri.lastIndexOf(dir) + dir.length);
Chrome 控制台给了我这个输出:
> uri = "/Mobile/Evol/12-20-2011";
"/Mobile/Evol/12-20-2011"
> dir = "Evol/";
newUri = uri.substring(0, uri.lastIndexOf(dir) + dir.length);
"/Mobile/Evol/"
只需在 JavaScript 字符串中使用“split”函数,
var url = '/Mobile/Evol/12-20-2011';
var tokens = url.split('/');
var reqURL = token[0] + '/'+ token[1] ;
当然 URL 格式必须是相同的 some_string/some_string/some_string
var str = window.location.pathname;
const sub = "Evol/";
var locEvol = str.indexOf(sub);
var endIdx = locEvol + sub.length;
var beginStr = str.substring(0, endIdx);
// beginStr contains the desired substring
假设您想完全切断任何查询和片段:
url.replace(/\/Evol\/[^?#]*(?:[?#].*)?$/, '/Evol')
打破这个正则表达式:
\/Evol\/
匹配文字文本"/Evol/"
。\
's 是必要的,因为它将//Evol/...
是行注释,而/
正则表达式中的其他地方结束正则表达式。[^?#]
匹配除查询或片段分隔符之外的任何内容(?:...)?
只是做一些可选的[?#].*
匹配查询或片段开头,后跟任意数量的非空白字符$
强制匹配到达输入的末尾。一个班轮:
match.url.split("/").slice(0,-1).join("/")
let array1 = "/first/second/third/fourth";
let array2="posts/stories/1234";
console.log("Result=",array1.split("/").slice(0,-1).join("/"));
console.log("Result=",array2.split("/").slice(0,-1).join("/"));