获取周围没有标记的HTML文本



我有这个HTML:

<div id="uglyHtml">
<br> <b>Lead</b>: <a href="#">John</a>
<br> <b>Boss</b>: <a href="#">Bernard</a>
<br> <b>Mascot</b>: Patrick
<br> <b>Designer</b>: Jeanette
<br> <b>Front</b>: <a href="#">Larry</a>
</div>

例如:

我们可以简单地用:#uglyHtml > a捕捉John、Bernard和Larry
Lead、Boss、Mascot、Designer:#uglyHtml > b

现在我需要捕获Patrick&Jeanette,他们周围没有标签,为此我只能使用CSS或/和regex

有办法做到这一点吗?

我永远不会使用正则表达式来匹配文本,但这似乎是您的工具想要的。这样的东西会匹配角色和人物。这个很容易坏。

var html = document.querySelector("#uglyHtml").innerHTML
var re = /<b>([^<]+)</b>: (?:<a[^>]+>)?([^<n]+)/g
let out = true
while (out) {
out = re.exec(html)
console.log(out)
}
<div id="uglyHtml">
<br> <b>Lead</b>: <a href="#">John</a>
<br> <b>Boss</b>: <a href="#">Bernard</a>
<br> <b>Mascot</b>: Patrick
<br> <b>Designer</b>: Jeanette
<br> <b>Front</b>: <a href="#">Larry</a>
</div>

您可以使用这个:

#uglyHtml:not(a), #uglyHtml:not(b) {
.....
}

感谢大家的帮助,我用一个简单的正则表达式:

<br> <b>.*</b>: ([a-zA-Z0-9 ]*)

https://regex101.com/r/lGE5bY/3

最新更新