在 Node.js 中从一个绝对路径减去另一个绝对路径
Subtract one absolute path from another in Node.js
我在 Node.js 中有两条路径,例如:
var pathOne = '/var/www/example.com/scripts';
var pathTwo = '/var/www/example.com/scripts/foo/foo.js';
如何从一条路径中减去另一条路径以获得相对路径?
subtractPath(pathTwo, pathOne); // => 'foo/foo.js'
是否有一个模块可以根据所有必要的 URL 规则执行此操作,或者我是否最好使用一些简单的字符串操作?
不确定"根据所有必要的 URL 规则"是什么意思,但似乎您应该能够只使用 path.relative
;
> var pathOne = '/var/www/example.com/scripts';
> var pathTwo = '/var/www/example.com/scripts/foo/foo.js';
> path.relative(pathOne, pathTwo)
'foo/foo.js'
> path.relative(pathTwo, pathOne)
'../..'
您可以使用正则表达式轻松做到这一点:
var pathOne = /^'/your'/path'//
var pathTwo = '/your/path/appendix'.replace(pathOne, '');
这样,您可以强制它位于第二条路径的开头(使用 ^
),如果它不是完全匹配,它不会被擦除。
您的示例是:
var pathOne = /^'/var'/www'/example.com'/scripts'//;
var pathTwo = '/var/www/example.com/scripts/foo/foo.js'.replace(pathOne, '');
它应该返回:foo/foo.js
。
相关文章:
- 请求准备一个文件并返回路径,允许用户在准备好时下载
- 有没有一个Nodejs库可以序列化和反序列化命名组件的路径(比如URL路径名)
- 计算从一个对象到另一个对象的路径并沿其移动
- javascript window.location在检查firebug时给了我一个错误的url路径
- 将 SVG 路径雕刻成矩形,在矩形中留下一个“孔”
- 有没有一条清晰的路径,我可以实现一个在 ScalaJS + React 中广泛使用上下文的 React 组件
- 从路径中删除最后一个文件夹
- 从一个复杂的JSON对象打印每个JSON输入路径
- $location.path获取上一个路径
- 如何在HTML中创建一个信息框,显示与悬停SVG路径相关的信息
- 创建从一个位置到另一个位置的路径动画
- 制作从上一个已知点到新添加点(d3)的路径(线)的动画
- 向下滑动菜单-如何一次只允许打开一个路径
- 如何创建一个浏览按钮,通过该按钮我可以选择系统的任何路径,即C:Program Files.并将其放入文本框中
- RequireJS路径中具有一个标识符的多个文件
- 给定一个对象数组,创建一个函数,该函数返回一个 Object,该 Object 具有按类型分组的路径数组
- D3 map - 将两个不相交的 SVG 多边形路径合并为一个路径
- 输入最后一个字段后自动提交/刷新信息路径表单
- 返回路径中的最后一个目录
- 是封闭路径中的一个点 - SVG Javascript