我有一个由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 :(得分:0)
这是关于JavaScript和正则表达式的W3教程:
答案 1 :(得分:0)
var folder_target_path = full_path.replace(/ \ / [^ \ /] * $ /,'');
将删除最后一个/及其后的任何内容。我认为你可以通过从字符串创建一个Regexp对象来避免转义模式中的/。
答案 2 :(得分: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(/ \ / [^ \ /] * $ /,'')删除文件名;否则不要修改完整路径。
感谢所有人!
此致 史蒂夫