[英]Get last folder name from URL path , getJSON Api , in javascript
[英]How to get last folder name from folder path in javascript?
在 javascript/jquery 中,給定一個文件夾的路徑,如:
"http://www.blah/foo/bar/"
要么
"http://www.blah/foo/bar" (this one doesn't have a slash in the end)
如何提取最后一個文件夾的名稱? 在這種情況下,它將是"bar"
。
有沒有通過內置函數的簡單方法?
謝謝。
使用正則表達式的強大功能:
var name = path.match(/([^\/]*)\/*$/)[1]
請注意,這不是最后一個“文件夾”(在您的情況和 URL 的一般情況下未定義),而是最后一個路徑標記。
使用正則表達式! 要么:
var arr = 'http://www.blah/foo/bar/'.split('/');
var last = arr[arr.length-1] || arr[arr.length-2];
這說明了“ http://www.blah/foo/bar//// ” :p (或使瀏覽器崩潰)
var arr = 'http://www.blah/foo/bar/////'.split('/');
var last = (function trololol(i) {
return arr[i] || trololol(i-1);
})(arr.length-1);
看看這個:
var lastFolder = location.href.split('/').filter(function(el) {
return el.trim().length > 0;
}).pop();
alert( location.href.split('/').filter(function(el) { return el.trim().length > 0; }).pop() ); alert( location.href ); var test = "http://www.blah/foo/bar/" ; alert( test.split('/').filter(function(el) { return el.trim().length > 0; }).pop() );
var myString = "http://www.blah/foo/bar";
var pathElements = myString.replace(/\/$/, '').split('/');
var lastFolder = pathElements[pathElements.length - 1];
這是純 JavaScript,不需要 jQuery。
我通常在javascript中使用split
和pop
的組合,因為我通常從 aws s3 獲取文件夾地址,它已經很干凈了:
const teststring = 'image_1/ArtService/GB/ART-123/dependants/ASM-123';
const folder = teststring.split('/').pop();
console.log('folder:', folder);// ASM-123
您可以將字符串拆分為列表並通過函數獲取列表中的最后一個元素。
function checkString(stringToCheck) {
var list1 = stringToCheck.split('/');
if (list1[list1.length - 1].length < 1) {
var item = list1[list1.length - 2]
} else {
var item = list1[list1.length - 1];
}
$('#results').append('Last Folder in '+stringToCheck+': <b>'+item+'</b><br>');
}
從那里您可以找到最后一個實際元素。
雖然它可能不是最優雅的答案,但對於可能不了解正則表達式的人來說,它似乎是最容易理解的。
更新了 JSFiddle 以顯示結果。
var str = "...";
var segments = str.split("/");
var lastDir = (segments.length > 1) ? segments[segments.length - 2] : "";
第一個例子產生“bar”。 第二個例子產生“foo”。
如果您想忽略尾部斜杠並將最后一段也視為文件夾,那么對@bdesham 的 RegExp 稍作調整即可解決問題:
var segments = str.replace(/\/+$/, '').split('/');
var lastDir = (segments.length > 0) ? segments[segments.length - 1] : "";
一個簡單的正則表達式就可以完成這項工作
var s = "toto1/toto2/toto3toto1/totofinale/";
s.replace(/^.*\/([^\/]+\/)$/, "$1")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.