获取没有标签的HTML文本

时间:2020-03-12 14:22:55

标签: html css regex

我有这个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
来简单地捕获约翰,伯纳德和拉里 负责人,老板,吉祥物,设计师:#uglyHtml > b

现在我需要捕获PatrickJeanette周围没有标签的标签,为此,我只能使用CSS或/和正则表达式

有办法吗?

3 个答案:

答案 0 :(得分:1)

您可以使用此:

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

答案 1 :(得分:1)

我绝不会使用正则表达式来匹配文本,但是看起来这正是您的工具想要的。这样的事情将匹配角色和人。这很容易破坏。

<div class="subject-pagination">
  <div class="page-item" *ngFor="let subject of pageIdentityTraitArray.subjects"
    [ngStyle]="subject.nid === subjectId ? {'background-color': pageIdentityTraitArray.color} :'' ">
    <a [routerLink]="[ '/code-of-ethics/identity-trait', pageId, subject.nid, '1' ]"></a>
  </div>
</div>
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)
}

答案 2 :(得分:0)

感谢大家的帮助,我用一个简单的正则表达式解决了这个问题:

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

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