JavaScript Regex替换文件扩展名之前的最后一个下划线和数字

JavaScript Regex Replace Last Underscore and Digits Before File Extension

本文关键字:最后一个 下划线 数字 Regex 替换 文件 扩展名 JavaScript      更新时间:2023-09-26

如何去掉文件名中最后一个下划线及其后面的数字。

这里有一个例子:

案例#1

fileName_01.jpg --> fileName.jpg

案例#1

file_Name_01.jpg --> file_Name.jpg

案例#3

file_Name_.jpg --> file_Name_.jpg

jsfiddle测试文件:http://jsfiddle.net/2t3rR/4/

<script language="javascript" type="text/javascript">
        function RegexTester() {
            debugger;
            var string = 'fileName_01.jpg';
            var regex = new RegExp('_[0-9]+'.');
            string = string.replace(regex, '.'); //Result - fileName.jpg
            string = 'file_Name_01.jpg';
            string = string.replace(regex, '.'); //Result - file_Name.jpg
            string = 'file_Name_.jpg';
            string = string.replace(regex, '.'); //Result - file_Name_.jpg
        }
    </script>

我认为最好使用前瞻,不要匹配点:

"file_name_01.jpg".replace(/_'d+(?='.)/, '')

情况如何?

"fileName_01.jpg".replace(/_'d+('.[^.]+)$/,"$1")

使用模式/_[0-9]+'./并替换为.

strArr[i].replace(/_[0-9]+'./, ".")

后面的.是一个很弱的尝试,以确保我们只替换扩展名之前的数字,这样我们就不会将"file_01_name.jpg"变成"file_name.jpg"。

这将在诸如"file_01.asdf.jpg"之类的事情上失败,在那里它将转换为"file.asdf..jpg",但希望这种文件名不会出现在您的应用程序中。(否则,我们将不得不在文件扩展名中生成regex和硬代码)。

相关文章: