JavaScript正则表达式替换文件扩展名之前的最后一个下划线和数字
如何去除文件名中最后的下划线和其后的数字 以下是一个例子: 案例1 案例1 案例3 JSFIDLE测试文件: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”,但这种文件名希望不
使用模式
/[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>