例如,假设 x = filename.jpg
,我想获取 filename
,其中 filename
可以是任何文件名(我们假设文件名仅包含 [a-zA-Z0-9-_] 以简化。)。
我在 DZone Snippets 上看到 x.substring(0, x.indexOf('.jpg'))
,但 x.substring(0, x.length-4)
不会表现更好吗?因为, length
是一个属性并且不进行字符检查,而 indexOf()
是一个函数并且进行字符检查。
原文由 ma11hew28 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您知道扩展名的长度,则可以使用
x.slice(0, -4)
(其中 4 是扩展名和点的三个字符)。如果您不知道长度@John Hartsock 正则表达式 将是正确的方法。
如果您不想使用正则表达式,可以试试这个(性能较差):
请注意,它会在没有扩展名的文件上失败。