Js regexp:如何提取特殊的子串?

时间:2018-01-30 03:32:13

标签: javascript regex

我的代码示例如下:

FROM <rhel6/7>

我的目的很明确:从 let str = '<p>test xss<img src=x onerror=alert(1)><h1 onmouseover=prompt(0)></h1></p>'; console.log(str.replace(/(<img [\s\S]*>?|<h1 [\s\S]*><\/h1>)/i, '')); 中提取imgh1代码,因此我希望结果为str,但实际上结果是{{1} }。似乎regexp字符串img判断部分匹配str的结尾。谁能告诉我如何正确编写这个正则表达式字符串?

3 个答案:

答案 0 :(得分:0)

这是一个不完整的代码,但只是举个例子。试试这样的事情

let parser = new DOMParser()
let doc = parser.parseFromString(parser, "text/html")

然后你可以使用doc和东西

来操作querySelectorAll,就像HTMLDocument节点一样

答案 1 :(得分:0)

这个怎么样:

'<p>test xss<img src=x onerror=alert(1)><h1 onmouseover=prompt(0)></h1></p>'.replace(/<p>([\w ]+)\b.*<\/p>/, '<p>$1</p>')

答案 2 :(得分:0)

我将正则表达式规则更改为/(<img [\s\S]*?>|<h1[\s\S]*\/h1>)/ig,现在可以正常工作。