我想使用正则表达式来识别字符串中的任何标记。我有动态数据,可以包括以下记录:
str1= "TT-DD-11-AZR"><img src=x onerror=alert(1)>"
str2 = "RR-DD-22-AZR"><img src=http://localhost/ma.php>"
我使用Regex的方式如下:
function regex() {
let str1= "TT-DD-11-AZR"><img src=x onerror=alert(1)>"
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?标记在字符串中。
感谢
看起来您正试图与<>
而不是<>
比赛。此外,反斜杠必须在RegExp构造函数中转义。
因此:
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;
}
}
console.log(regex())