首页 > 解决方案 > 正则表达式查找字符串中标记的完全匹配。- JS

问题描述

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

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

我正在通过以下方式使用正则表达式:

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

我也试过:

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

两者都返回 null。知道我可以识别什么 <img src 吗?字符串内的标签。

谢谢

标签: javascriptregex

解决方案


看起来您正在尝试匹配<>而不是&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())


推荐阅读