如何摆脱文件名中的最后一个下划线和数字。
以下是一个例子:
案例#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/
答案 0 :(得分:1)
我认为最好使用前瞻并且不匹配点:
"file_name_01.jpg".replace(/_\d+(?=\.)/, '')
答案 1 :(得分:1)
这将是怎样的?
"fileName_01.jpg".replace(/_\d+(\.[^.]+)$/,"$1")
答案 2 :(得分: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>
答案 3 :(得分:0)
使用模式/_[0-9]+\./
并替换为.
strArr[i].replace(/_[0-9]+\./, ".")
尾随.
是一个弱尝试,以确保我们只替换扩展名之前的数字,因此我们不会将“file_01_name.jpg”变成“file_name.jpg”。
这会在“file_01.asdf.jpg”这样的东西上失败,它会转换为“file.asdf.jpg”,但希望这种文件名在您的应用程序中不会出现。 (否则我们必须在文件扩展名中制作正则表达式和硬编码。)