gpt4 book ai didi

javascript正则表达式匹配所有

转载 作者:行者123 更新时间:2023-11-29 19:54:20 25 4
gpt4 key购买 nike

有一个字符串像

<img src="images/_attachments/07-08.jpg" style="width: 520px; height: 693px;" /><img src="images/_attachments/09-11.jpg" style="width: 520px; height: 693px;" />

我想获取图片路径 'images/_attachments/07-08.jpg', 'images/_attachments/09-11.jpg' 和文件名 '07-08.jpg', '09-11.jpg' javascript 正则表达式。

所以我这样编码

var str='<img src="images/_attachments/07-08.jpg" style="width: 520px; height: 693px;" /><img src="images/_attachments/09-11.jpg" style="width: 520px; height: 693px;" />'
var strPattern=new RegExp('<img.*?src="(.*\/(.*?))".*?>', 'g');
var arrMatch=new Array();
var strHTML='';

while(arrMatches=_strPattern.exec(str)){
strHTML+='<div>'+arrMatches[2]+'</div>';
}

$('body').html(strHTML);

但我得到的只是路径,而不是文件名,我该如何解决这个问题?

最佳答案

您的路径匹配是贪婪的,因此您不会获得所需的文件名结果。如果你让它非贪婪,它只会匹配 images/ ,所以你要么需要加倍它,要么让你的文件名匹配器不包含斜线。将您的模式更改为

var strPattern=new RegExp('<img.*?src="(.*?\/([^/"]*))".*?>', 'g');
// ^

顺便说一句,正则表达式 /<img.*?src="(.*?\/([^\/"]*))".*?>/g会更好看。

关于javascript正则表达式匹配所有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16421334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com