我想實現一個實用程序方法,它可以用來解析相對路徑。 該方法應該使用JavaScript正則表達式來實現,並且需要該算法如下:如何使用JavaScript RegExp解析相對路徑?
1)的「段 /../」,其中段是 完整路徑段不等於所有匹配「..」,被刪除。 迭代執行這些路徑段的移除, 刪除每次迭代中最左邊的匹配模式,直到沒有匹配的模式保留。 2)如果路徑以「/ ..」結尾,其中 完整路徑段不等於「..」,那麼將刪除該 「/ ..」。
例子:
a/b/css/../../d ==> a/d
a/b/c.ss/../../d ==> a/d
a/b/css/../.. ==> a/
a/bss/../../../ ==> ../
../../../ ==> ../../../
我試圖實現此方法:
var result = "a/b/c.ss/../../d";
while(result.indexOf('..') >= 0)
{
var temp = result.replace(/([^\.\/]*)\/\.\.\/?/,'');
if (temp == result){
break;
}
result = temp;
}
但它不能與「處理A/B/c.ss /../../ d「,那我該如何糾正它?
請幫我一把!
你爲什麼不用'i = 1'開頭? – jantimon
這不會給'a/b/css /../ ..' – SmokeyPHP
'return parts.join('/')+(parts [parts.length -1] === undefined?' /':'');' – jantimon