Javascript 获取Node.js中两个模式之间的所有字符串

Javascript 获取Node.js中两个模式之间的所有字符串,javascript,node.js,Javascript,Node.js,在我的node.js服务器上,我有一个字符串,其中包含html(未缩放)和一些(不仅是一个,而且更多)带有base64 src的img标记,我需要从中获取数组中的所有base64字符串,然后将这些base64解码为图像,保存在服务器上的某个位置,并用img地址替换base64字符串,例如,我需要改变这个 <img src="data:image/png;base64,iVBORw...some-pretty-damn-long-string...K5CYII=" style="foo:ba

在我的node.js服务器上,我有一个字符串,其中包含html(未缩放)和一些(不仅是一个,而且更多)带有base64 src的img标记,我需要从中获取数组中的所有base64字符串,然后将这些base64解码为图像,保存在服务器上的某个位置,并用img地址替换base64字符串,例如,我需要改变这个

<img src="data:image/png;base64,iVBORw...some-pretty-damn-long-string...K5CYII=" style="foo:bar;" possible-other-attribude="baz"/>

为此:

<img src="/media/images/filename.png" style="foo:bar;" possible-other-attribude="baz"/>

我对实际解码没有问题,保存到.png,然后替换字符串,但我不知道如何获得包含所有base64字符串的数组。感谢您的帮助。

var strings=htmlCode.match(/src=“data:[a-z\/]+;base64,.+?”/g)
var strings = htmlCode.match(/src="data:[a-z\/]+;base64,.+?"/g)

for(var i = 0; i < strings.length; i++)
{
    doSomething(strings[i].match(/,(.+?)"/)[1]);
}
for(var i=0;i
str.match(/data:image/png;base64[A-Za-z0-9+\/]+//g)?如果没有找到数组(或
null
,如果找不到任何数组),会返回什么?也许你已经忘记了
g
lobal修饰符…谢谢,这可能是最好的解决方案。我真的应该学习regex…@Bergi My bad,它确实是一个数组(这就是为什么我一发现就删除了注释)。我很困惑,因为当我在console.log中记录结果时,id没有像其他数组那样显示[]方括号。