删除文件名.在url中使用nodejs扩展



我是nodejs的初学者,所以如果这个问题已经回答了,请原谅。我尝试了多种方法,但都不适合我。

我正在尝试删除文件名。HTTP url中的扩展

例如:

http://somedomain.com/path1/path2/path3/myfile.txt

http://somedomain.com/path1/path2/path3/

url中的文件名是动态的,所以我不能在代码中显式地使用"myfile.txt"。

我没有使用任何web框架,但我有http://stringjs.com库

使用正则表达式:

'http://somedomain.com/hello1/hello2/hello3/myfile.txt'.replace(//w+.w+$/, '');

正则表达式匹配两个字符串,由.分隔,前面是/(在您的示例中是/myfile.txt),然后由空字符串替换。此方法在node和纯javascript中都有效。

使用node.js的path模块:

let path = require('path');
let parsed = path.parse('http://somedomain.com/hello1/hello2/hello3/myfile.txt');
console.log(parsed.dir) // => http://somedomain.com/hello1/hello2/hello3

node.js有一个用于解析路径的内置模块。然而,它不是为解析uri而设计的,但在您的情况下应该可以很好地工作。

分割、切片和连接

let url = 'http://somedomain.com/hello1/hello2/hello3/myfile.txt';
url.split('/').slice(0, -1).join('/');

在每个/处拆分url,从结果数组(myfile.txt)中删除最后一个元素,并以/作为分隔符将它们重新连接在一起。

你可以这样做:

var path = 'http://somedomain.com/hello1/hello2/hello3/myfile.txt';
path = path.split('/');
path.splice(path.length-1,1);
path = path.join('/');

最新更新