![](/img/trans.png)
[英]How do I remove get variables and filename from URL using javascript/jquery?
[英]I'd like to remove the filename from a path using JavaScript
使用Javascript,我想从字符串(路径+文件名)的末尾删除文件名,只留下目录路径。
正则表达式会是理想的吗? 或者,是否有使用字符串对象执行此操作的更简单方法?
谢谢你的帮助!
----回答和解释---
这段代码的目的是打开一个目录的finder。 我能够提取的数据包括一个文件名 - 因为我只是试图打开 finder (mac) 到该位置,我需要去除文件名。 这是我的结果:
var theLayer = app.project.activeItem.selectedLayers[0];
//get the full path to the selected file
var theSpot = theLayer.source.file.fsName;
//strip filename from the path
var r = /[^\/]*$/;
var dirOnly = theSpot.replace(r, '');
//use 'system' to open via shell in finder
popen = "open"
var runit = system.callSystem(popen+" "+"\""+dirOnly+"\"");
var urlstr = '/this/is/a/folder/aFile.txt';
var r = /[^\/]*$/;
urlstr.replace(r, ''); // '/this/is/a/folder/'
您尚未指定任何示例输入。
假设您总是有一个目录,那么以下内容将起作用。 它需要所有东西(但不包括)最后一个斜线。
test = "/var/log/apache2/log.txt";
console.log(test.substring(0, test.lastIndexOf("/")));
您可以使用子字符串和 indexOf:
var url = 'asdf/whatever/jpg.image';
url.substring(0, url.lastIndexOf('/'))
如本答案所述,如果您使用的是node.js (如果您正在处理文件路径,这是合理的假设) - 您可以使用path
模块,调用path.parse
,并使用dir
检索目录名称,如下所示:
const path = require("path")
let myPath = "folder/path/file.txt"
let myDir = path.parse(myPath).dir
console.log(myDir) // "folder/path"
这应该是跨不同环境管理和解析文件路径的最稳健的方式。
我知道这是一个非常古老的问题并且已经得到了回答,但是我的要求是删除该文件,如果它存在于给定的路径中,或者如果它的文件夹已经存在,则不执行任何操作。
接受的答案的正则表达式对我不起作用,所以我使用了这个:
let FilePathString = '/this/is/a/folder/aFile.txt';
let FolderPathString = '/this/is/a/folder/';
const RegexPattern = /[^\/](\w+\.\w+$)/i;
console.log(FilePathString.replace(RegexPattern, '')); // '/this/is/a/folder/'
console.log(FolderPathString.replace(RegexPattern, '')); // '/this/is/a/folder/'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.