正则表达式来查找<img>字符串中标签的完全匹配项。



我想使用正则表达式来识别字符串中的任何标记。我有动态数据,可以包括以下记录:

str1= "TT-DD-11-AZR"&gt;&lt;img src=x onerror=alert(1)&gt;"
str2 = "RR-DD-22-AZR"&gt;&lt;img src=http://localhost/ma.php&gt;"

我使用Regex的方式如下:

function regex() {
let str1= "TT-DD-11-AZR"&gt;&lt;img src=x onerror=alert(1)&gt;"
let regex = new RegExp("<img([wW]+?)/>", "g");
const match = regex.exec(str1);
if (match) { //this comes as null
return match;
}
}

我也试过:

regex= "/src=([^\"]+)/"

两者都返回null。我能识别出<img src?标记在字符串中。

感谢

看起来您正试图与<>而不是&lt;&gt;比赛。此外,反斜杠必须在RegExp构造函数中转义。

因此:

function regex() {
let str1= "TT-DD-11-AZR"&gt;&lt;img src=x onerror=alert(1)&gt;"
let regex = new RegExp("&lt;img([\w\W]+?)&gt;", "g");
const match = regex.exec(str1);
if (match) { //this comes as null
return match;
}
}
console.log(regex())

最新更新