Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式替换文件扩展名之前的最后一个下划线和数字_Javascript_Regex - Fatal编程技术网

JavaScript正则表达式替换文件扩展名之前的最后一个下划线和数字

JavaScript正则表达式替换文件扩展名之前的最后一个下划线和数字,javascript,regex,Javascript,Regex,如何去除文件名中最后的下划线和其后的数字 以下是一个例子: 案例1 案例1 案例3 JSFIDLE测试文件: 使用模式/[0-9]+\./并替换为 strArr[i].replace(/_[0-9]+\./, ".") 尾随的是一个很弱的尝试,以确保我们只替换扩展名前面的数字,这样我们就不会将“file\u 01\u name.jpg”变成“file\u name.jpg” 这将在“file_01.asdf.jpg”之类的情况下失败,它将转换为“file.asdf.jpg”,但这种文件名希望不

如何去除文件名中最后的下划线和其后的数字

以下是一个例子:

案例1

案例1

案例3

JSFIDLE测试文件:

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

strArr[i].replace(/_[0-9]+\./, ".")
尾随的
是一个很弱的尝试,以确保我们只替换扩展名前面的数字,这样我们就不会将“file\u 01\u name.jpg”变成“file\u name.jpg”


这将在“file_01.asdf.jpg”之类的情况下失败,它将转换为“file.asdf.jpg”,但这种文件名希望不会出现在您的应用程序中。(否则,我们必须在文件扩展名中生成正则表达式和硬代码)。

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

"file_name_01.jpg".replace(/_\d+(?=\.)/, '')
这个怎么样

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

函数RegexTester(){
调试器;
变量字符串='fileName_01.jpg';
var regex=new RegExp(“[0-9]+\”);
string=string.replace(regex,'.');//结果-fileName.jpg
字符串='file_Name_01.jpg';
string=string.replace(regex,'.');//结果-文件_Name.jpg
字符串='file_Name_u.jpg';
string=string.replace(regex,'.');//结果-文件名
}

您刚刚重新回答了其他问题
strArr[i].replace(/_[0-9]+\./, ".")
"file_name_01.jpg".replace(/_\d+(?=\.)/, '')
"fileName_01.jpg".replace(/_\d+(\.[^.]+)$/,"$1")
<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>