我如何可靠地检测node.js中的相对path

也许我正在努力(我应该只是寻找一个前缀./../ ),但我不想重新发明轮子,写一个函数来正确检测相对path(对于所有平台,等等。)

现有的图书馆?

有没有这样做的npm包? 当然这个问题已经解决了…

途径?

除了现有的库之外,我想要的方法是使用path模块函数将可能的相对path连接到已知的前缀,然后查看结果是什么,假设path.join('some_base', possiblyRelative)将允许某种平台安全的特点。

还有其他build议吗? 途径?

这有点晚了,但对于其他人在同一个问题上search:

从节点版本0.12.0开始, path模块中有path.isAbsolute(path)函数。 要检测您的path是否相对,请使用它的协商:

即:

 var path = require('path'); if( ! path.isAbsolute(myPath)) { //... } 

UPDATE2:TomDotTom在这里find了一个更强大的答案: 如何检查一个path是绝对的还是相对的

转载于此(但相反):

 var path = require('path'); function isRelative(p) { return path.normalize(p + '/') !== path.normalize(path.resolve(p) + '/'); } 

对于节点v0.12及以上版本,我推荐使用path.isAbsolute

 function isRelative(str) { //Remove quotes as it can potentially mess up the string str=str.replace("\'\"",''); return str.substring(0,2)=="./"||str.substring(0,3)=="../"; } 

在这个例子中,我们只允许stringpath开头的相对string