将文件名替换为路径和扩展名

Replace filename with path and extension

本文关键字:扩展名 路径 文件名 替换      更新时间:2023-09-26

我有一些带有图像的文本,没有路径和扩展名,例如存储在db:中

 <img src="BUS-icon">

OR(如果已经有路径和扩展)

<img src=".../images/thumbs/BUS-icon.png">

我需要将文件名替换为前缀和扩展名(如果尚未添加),例如:

'some text <img src=".../images/thumbs/BUS-icon.png"> another text '.replace(/src=['|"](.*?)['|"]/ig
   function($1){
    var filename=$1.match(/DESIRED REGEXP/)
    return 'src="../images/thumbs/'+filename[0]+'.png"';
   }
);

我需要DESIRED REGEXP来转换以下测试

 image 1 <img src="BUS-icon1">
  image 2 <img src='BUS-icon2.png'>
  image 3 <img src="../images/thumbs/BUS-icon3.png">
  image 4 <img src='abc/BUS-icon4.png'>   

image 1 <img src="../images/thumbs/BUS-icon1.png">
      image 2 <img src='../images/thumbs/BUS-icon2.png'>
      image 3 <img src="../images/thumbs/BUS-icon3.png">
      image 4 <img src='../images/thumbs/BUS-icon4.png'>   

实际应用程序知道没有路径和扩展名的文件名,并用完整的路径替换src。

编辑:

This seems to be working so far :
text.replace(/src=['"](.*?)['"]/ig,function($1,$2){ 
  var filename=$2.match(/(?:.+'/)?([^."']+)/)[1]  
  return 'src="../images/thumbs/'+filename+'.png"';
})
^(image's+'d+'s*<img's*src=["'])((?:(?!'.'.'/images|"|').)*?["']>)$

试试这个。替换为$1../images/$2。请参阅演示。

http://regex101.com/r/dZ1vT6/18

这应该有效:

var filename=$1.match(/(src=['"])?(.+'/)?([^."']+)/)[3]