"5.2.4. Remove Dot Segments"解释了如何将.
和..
的路径转换为没有的路径。
IIUC,输入foo/../bar
按如下方式处理。
"foo/../bar"
,""
)"/../bar"
,"foo"
)"/bar"
,""
)""
,"/bar"
)/bar
。对我来说,输入是相对路径似乎很奇怪,但输出是绝对路径。
在我看来,如果输入缓冲区以/
开头并且从
℃。如果输入缓冲区的前缀为" /../"或" /..", 在哪里" .."是一个完整的路径段,然后替换它 前缀为" /"在输入缓冲区中删除最后一个 段及其前面的" /" (如果有的话)来自输出 缓冲;否则,
到
℃。如果输入缓冲区的前缀为" /../"或" /..", 在哪里" .."是一个完整的路径段,然后替换它 前缀为" /"在输入缓冲区中删除最后一个 段及其前面的" /" (如果有的话)来自输出 缓冲区,然后如果不是 isAbsolute 和输出缓冲区 是空的,删除" /"从输入缓冲区的前面; 否则,
我误读了这个规格吗?这是因为某种原因我没有看到的理想结果吗?
我将一个gist放在一起,实现了我对规范和"修复"的理解。我提议了。