[英]Using Javascript to remove end of URL
使用 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/"
。 \\
是必需的,因為//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("/"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.