2011-03-21 44 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(/ \/[^ \ /] * $ /,'')删除文件名。否则不要修改完整路径。

谢谢大家!

问候, 史蒂夫