我如何可靠地检测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