[英]Construct a relative path in JavaScript from two absolute paths
給定兩條絕對路徑,例如
/var/data/stuff/xyz.html
/var/data
如何創建以第二條路徑為基礎的相對路徑? 在上面的示例中,結果將是: stuff/xyz.html
另一個例子:
/relative/sub/foo/sub/file
/relative/path
../../../path
這類似於這個問題,但我正在尋找最佳的 JavaScript 解決方案,而不是 Java。
如果您在node.js的服務器上運行它:
http://nodejs.org/api/path.html#path_path_relative_from_to
這是他們的實施:
https://github.com/joyent/node/blob/master/lib/path.js#L233
這應該在瀏覽器中工作而不需要任何更改。 它已經過戰斗測試,所以它已經處理了邊緣情況。 它不是一個單行,但它完美無缺,我認為更重要。 POSIX版本也不錯,如果這是你唯一認為需要支持的版本。
使用URL處理很容易出錯,所以我強烈建議使用庫來處理所有細節。
URI.js使這很簡單:
URI('/var/data/stuff/xyz.html').relativeTo('/var/data');
JS URL API 現在應該在瀏覽器中處理這個問題: https://developer.mozilla.org/en-US/docs/Web/API/URL/
新網址(網址,基礎)
// Base urls
let m = 'https://developer.mozilla.org';
let a = new URL("/", m); // => 'https://developer.mozilla.org/'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.