在文件名中的扩展名前插入一个字符串

时间:2012-05-29 15:34:29

标签: javascript string split

如何在图片文件名中的扩展名前插入字符串?例如,我需要转换它:

../Course/Assess/Responsive_Course_1_1.png

到此:

../Course/Assess/Responsive_Course_1_1_large.png

8 个答案:

答案 0 :(得分:34)

如果我们假设扩展名是文件名中最后一个点后面的任何字母,数字,下划线或破折号系列,那么:

filename = filename.replace(/(\.[\w\d_-]+)$/i, '_large$1');

答案 1 :(得分:19)

使用javascript lastIndexOf,例如:

var s = "Courses/Assess/Responsive_Cousre_1_1.png";
var new_string = s.substring(0, s.lastIndexOf(".")) + "_large" + s.substring(s.lastIndexOf("."));

答案 2 :(得分:12)

如果文件没有扩展程序,则所有答案都无效。 这是一个适用于所有情况的解决方案。

function appendToFilename(filename, string){
    var dotIndex = filename.lastIndexOf(".");
    if (dotIndex == -1) return filename + string;
    else return filename.substring(0, dotIndex) + string + filename.substring(dotIndex);
} 

答案 3 :(得分:4)

var s = '../Course/Assess/Responsive_Course_1_1.png'
s.replace(/\.png$/, '_large.png');

这将完成这项工作。顺便说一句,这是在这里的夜晚。 :)

<强>更新

更通用的方法是:

var s = '../Course/Assess/Responsive_Course_1_1.png';
s.replace(/(\.[^\.]+)$/, '_large$1');

答案 4 :(得分:0)

$ 1匹配不带扩展名的文件名,或者$ 2匹配扩展名。

filename = filename.replace(/^([^.]+)$|(\.[^.]+)$/i, '$1' + "_large" + '$2');

答案 5 :(得分:0)

用于不带扩展名的文件,并且文件包含扩展名。谢谢@paul!

filename = filename.replace(/^([^.]+)$|(\.[^.]+)$/i, '$1' + "-thumb" + '$2');

答案 6 :(得分:0)

如果不确定传入文件的扩展名是什么,则可以这样做:

square

答案 7 :(得分:0)

简单的正则替换

filename = filename.replace(/(\.[^.]+)$/i, '_large$1')