用其他东西替换部分字符串

时间:2017-12-26 06:42:33

标签: javascript

假设我有像

这样的图像地址
https://firebasestorage.googleapis.com/v0/b/myproj-d.appspot.com/o/FILE_NAME.jpg?alt=media&token=124bb2bf-c6ef-432b-92c7-7032563ba31b

如何用THUMB_FILE_NAME.jpg替换FILE_NAME.jpg 注意:FILE_NAME和THUMB_FILE_NAME不是静态的并且已修复。

FILE_NAME未修复,我无法使用string.replace方法。 最终我不知道File_Name

4 个答案:

答案 0 :(得分:1)

使用replace

.replace(/(?<=\/)[^\/]*(?=(.jpg))/g, "THUMB_FILE_NAME")

或者如果您想支持多种格式

.replace(/(?<=\/)[^\/]*(?=(.(jpg|png|jpeg)))/g, "THUMB_FILE_NAME")

<强>演示

&#13;
&#13;
var output = "https://firebasestorage.googleapis.com/v0/b/myproj-d.appspot.com/o/FILE_NAME.jpg?alt=media&token=124bb2bf-c6ef-432b-92c7-7032563ba31b".replace(/(?<=\/)[^\/]*(?=(.jpg))/g, "THUMB_FILE_NAME");
console.log( output );
&#13;
&#13;
&#13;

<强>解释

  • (?<=\/)匹配/,但不记得匹配
  • [^\/]*匹配,直到您找到下一个/
  • (?=(.jpg)确保匹配以 .jpg
  • 结尾

要匹配FILE_NAME,请使用

.match(/(?<=\/)[^\/]*(?=(.(jpg|png|jpeg)))/g)

答案 1 :(得分:1)

var pattern = /[\w-]+\.(jpg|png|txt)/
var c = 'https://firebasestorage.googleapis.com/v0/b/myproj-d.appspot.com/o/FILE_NAME.jpg?alt=media&token=124bb2bf-c6ef-432b-92c7-7032563ba31b
'
c.replace(pattern, 'YOUR_FILE_NAME.jpg')

您可以在管道运算符中添加任何格式

答案 2 :(得分:0)

您可以使用String的replace方法。

var a = "https://firebasestorage.googleapis.com/v0/b/myproj-d.appspot.com/o/FILE_NAME.jpg?alt=media&token=124bb2bf-c6ef-432b-92c7-7032563ba31b";
a = a.replace('FILE_NAME', 'THUMB_FILE_NAME');

答案 3 :(得分:0)

如果您知道格式,可以使用拆分和联接来替换FILE_NAME。

let str = "https://firebasestorage.googleapis.com/v0/b/myproj-d.appspot.com/o/FILE_NAME.jpg?alt=media&token=124bb2bf-c6ef-432b-92c7-7032563ba31b";
let str_pieces = str.split('/');
let str_last = str_pieces[str_pieces.length - 1];
let str_last_pieces = str_last.split('?');
str_last_pieces[0] = 'THUMB_' + str_last_pieces[0];
str_last = str_last_pieces.join('?');
str_pieces[str_pieces.length - 1] = str_last;
str = str_pieces.join('/');