在Node.js中减去另一个绝对路径

时间:2016-01-17 08:42:55

标签: javascript node.js path

我在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规则执行此操作,还是我最好使用一些简单的字符串操作?

2 个答案:

答案 0 :(得分:13)

根据所有必要的网址规则,不确定您的意思,但似乎您应该只能使用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)
'../..'

答案 1 :(得分:-1)

您可以使用正则表达式轻松完成此操作:

AppCompatActivity

通过这种方式,您可以强制它位于第二条路径的开头(使用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, '');