假设我有像
这样的图像地址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
答案 0 :(得分:1)
使用replace
.replace(/(?<=\/)[^\/]*(?=(.jpg))/g, "THUMB_FILE_NAME")
或者如果您想支持多种格式
.replace(/(?<=\/)[^\/]*(?=(.(jpg|png|jpeg)))/g, "THUMB_FILE_NAME")
<强>演示强>
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;
<强>解释强>
(?<=\/)
匹配/
,但不记得匹配[^\/]*
匹配,直到您找到下一个/
(?=(.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('/');