regex 如何使用正则表达式匹配img标签和html字符串?

lskq00tm  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(92)

我想从HTML字符串中删除img标记,但是当我使用regexp将img标记与img属性值中的“>”匹配时,它总是匹配错误的子字符串。
下面是一个案例:

var str = '<img src="test>test" alt="test > test test" > "some text';
var reg = ???

字符串
如何制作'<img src="test>test" alt="test > test test" >">'.match(reg)[0] === '<img src="test>test" alt="test > test test" >'
试过这个正则表达式/<\s*(img)[^>]+(>[\r|\n|\s]*<\/\1>|\/?>)/,但不起作用。

slsn1g29

slsn1g291#

<img-开始标记
[^">]*-第一个"之前的任何数字
(?:"[^"]+"[^">]*)*-任意数量的"对,其中没有",加上除">之外的任意数量的字符
>-关闭

const tests = ['<img src="test>test" alt="test > test test" > "some text', '<img> <img>', `<img
src="test">`];

tests.forEach(str => console.log(str.match(/<img[^">]*(?:"[^"]+"[^">]*)*>/g)));

字符串

相关问题