我有一些没有路径和扩展名的图片文本,例如存储在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"';
})
答案 0 :(得分:2)
^(image\s+\d+\s*<img\s*src=["'])((?:(?!\.\.\/images|"|').)*?["']>)$
试试这个。$1../images/$2
。见。演示。
答案 1 :(得分:1)
这应该有效:
var filename=$1.match(/(src=['"])?(.+\/)?([^."']+)/)[3]