如何从JavaScript中的字符串修剪文件扩展名?

2022-08-29 23:17:12

例如,假设,我想得到,其中可以是任何文件名(让我们假设文件名只包含[a-zA-Z0-9-_]以简化。x = filename.jpgfilenamefilename

我在 DZone Snippets 上看到过,但性能不是更好吗?因为, 是一个属性,不执行字符检查,而 是一个函数,执行字符检查。x.substring(0, x.indexOf('.jpg'))x.substring(0, x.length-4)lengthindexOf()


答案 1

不确定什么会执行得更快,但当涉及到扩展时,这将更可靠,例如或.jpeg.html

x.replace(/\.[^/.]+$/, "")

答案 2

node.js 中,可以按如下方式获取不带扩展名的文件的名称。

const path = require('path');
const filename = 'hello.html';
    
path.parse(filename).name;     //=> "hello"
path.parse(filename).ext;      //=> ".html"
path.parse(filename).base; //=> "hello.html"

有关进一步的说明,请参阅 Node.js 文档页面。