Вставьте строку перед расширением в имени файла Как вставить строку перед расширением в имени файла изображения? Например, мне нужно преобразовать это: ../Course/Assess/Responsive_Course_1_1.png : ../Course/Assess/Responsive_Course_1_1_large.png Ответ 1 Если предположить, что расширение представляет собой любой ряд букв, цифр, подчеркивания или тире после последней точки в имени файла, тогда: filename = filename.replace(/(\.[\w\d_-]+)$/i, '_large$1'); Ответ 2 Использовать javascript lastIndexOf, что-то вроде: var s = "Courses/Assess/Responsive_Cousre_1_1.png"; var new_string = s.substring(0, s.lastIndexOf(".")) + "_large" + s.substring(s.lastIndexOf(".")); Ответ 3 Ни один из ответов не работает, если файл не имеет расширения. Здесь решение, которое работает для всех случаев. function appendToFilename(filename, string){ var dotIndex = filename.lastIndexOf("."); if (dotIndex == -1) return filename + string; else return filename.substring(0, dotIndex) + string + filename.substring(dotIndex); } Ответ 4 var s = '../Course/Assess/Responsive_Course_1_1.png' s.replace(/\.png$/, '_large.png'); Это выполнит эту работу. Кстати, здесь ночь.:) UPDATE: Более общий способ: var s = '../Course/Assess/Responsive_Course_1_1.png'; s.replace(/(\.[^\.]+)$/, '_large$1'); Ответ 5 Либо $ 1 соответствует имени файла без расширения, либо $ 2 соответствует расширению. filename = filename.replace(/^([^.]+)$|(\.[^.]+)$/i, '$1' + "_large" + '$2'); Ответ 6 для файлов без расширения и файлов включает в себя расширение. спасибо @paul! filename = filename.replace(/^([^.]+)$|(\.[^.]+)$/i, '$1' + "-thumb" + '$2');
Ответ 1 Если предположить, что расширение представляет собой любой ряд букв, цифр, подчеркивания или тире после последней точки в имени файла, тогда: filename = filename.replace(/(\.[\w\d_-]+)$/i, '_large$1');
Ответ 2 Использовать javascript lastIndexOf, что-то вроде: var s = "Courses/Assess/Responsive_Cousre_1_1.png"; var new_string = s.substring(0, s.lastIndexOf(".")) + "_large" + s.substring(s.lastIndexOf("."));
Ответ 3 Ни один из ответов не работает, если файл не имеет расширения. Здесь решение, которое работает для всех случаев. function appendToFilename(filename, string){ var dotIndex = filename.lastIndexOf("."); if (dotIndex == -1) return filename + string; else return filename.substring(0, dotIndex) + string + filename.substring(dotIndex); }
Ответ 4 var s = '../Course/Assess/Responsive_Course_1_1.png' s.replace(/\.png$/, '_large.png'); Это выполнит эту работу. Кстати, здесь ночь.:) UPDATE: Более общий способ: var s = '../Course/Assess/Responsive_Course_1_1.png'; s.replace(/(\.[^\.]+)$/, '_large$1');
Ответ 5 Либо $ 1 соответствует имени файла без расширения, либо $ 2 соответствует расширению. filename = filename.replace(/^([^.]+)$|(\.[^.]+)$/i, '$1' + "_large" + '$2');
Ответ 6 для файлов без расширения и файлов включает в себя расширение. спасибо @paul! filename = filename.replace(/^([^.]+)$|(\.[^.]+)$/i, '$1' + "-thumb" + '$2');