也许我正在加倍努力(我应该只寻找./
和../
的前缀),但是我不想重新发明轮子并编写一个函数来正确检测相对路径(对于所有平台等)
是否有npm
个软件包可以做到这一点?当然,这个问题已经解决了...
[不存在现有库,我打算采取的方法是使用path
模块函数将join
到已知前缀的可能相对路径,然后查看结果是什么,并假设path.join('some_base', possiblyRelative)
允许以平台安全的方式区分特征。
还有其他建议吗?办法?
有点晚了,但对于其他搜索相同问题的人:
自节点版本0.12.0起,您具有path.isAbsolute(path)
模块中的path.isAbsolute(path)
功能。要检测您的路径是否是相对路径,请使用路径的取反:
即:
path
UPDATE2:TomDotTom在这里找到了更可靠的答案:var path = require('path');
if( ! path.isAbsolute(myPath)) {
//...
}
此处转载(但相反):
How to check if a path is absolute or relative
对于节点v0.12及更高版本,我建议使用var path = require('path');
function isRelative(p) {
return path.normalize(p + '/') !== path.normalize(path.resolve(p) + '/');
}
。
path.isAbsolute
在此示例中,我们仅允许相对字符串作为字符串路径的开头