簡體   English   中英

用路徑和擴展名替換文件名

[英]Replace filename with path and extension

我有一些帶有圖像的文本,其中沒有路徑和擴展名,例如存儲在db中:

 <img src="BUS-icon">

或(如果已經具有路徑和擴展名)

<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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM