2011-03-21 41 views
0

我已經由JavaScript生成的文件夾/文件樹,其中該文件夾和文件的每個具有與其相關聯的路徑的複選框輸入,如:使用JavaScript確定文件的存在?

/var/www/site/user/folder7/ or 
/var/www/site/user/folder7/file.txt or 
/var/www/site/user/folder7/file.? (? being any file extension) 

在這些路徑中我只需要

/var/www/site/user/folder7 
的情況下

我知道,通常刪除文件名人們會使用這樣的:

var full_path = node.context.nextElementSibling.value; 
var folder_target_path = full_path.substring(0, full_path.lastIndexOf("/")); 

然而,這在回報:

/var/www/site/user/folder7 or 
/var/www/site/user 

我可以使用lastIndexOf()方法,如果我可以使用一些正則表達式來發現?然後達到最後的'/';不過,我對JavaScript相當陌生,從未使用過正則表達式。

你能否提出一種有效的方法來獲取文件夾而不是所有情況下的文件路徑?

問候, 史蒂夫

回答

0

VAR folder_target_path = full_path.replace(/ \/[^ \ /] * $ /,' 「);

將刪除最後一個/和後面的任何東西。我認爲你可以通過從字符串中創建一個Regexp對象來避免在模式中跳出/。

+0

感謝這個完美的作品。 – ServerStorm 2011-03-21 17:56:36

0

得到這個工作完全我需要使用以下內容:

 var full_path = node.context.nextElementSibling.value; 
    var folder_target_path; 

    var pathRE = /\./; 
    if (full_path.match(pathRE)){ 
     folder_target_path = full_path.replace(/\/[^\/]*$/, ''); 
    } else { 
     folder_target_path = full_path; 
    } 

這既包含路徑相匹配。 (指定文件擴展名開始的時間段),然後使用full_path.replace(/ \/[^ \ /] * $ /,'')刪除文件名。否則不要修改完整路徑。

謝謝大家!

問候, 史蒂夫