Javascript正则表达式:从头到尾将span元素与某个类进行匹配

Javascript regex: matching a span element with a certain class, from beginning to end

本文关键字:正则表达式 从头到尾 元素 span Javascript      更新时间:2023-09-26

我正在尝试将span元素与某个类名以及它的开始和结束之间的所有元素进行匹配。

我的正则表达式是/<'/?(span)[^>]*"myClass".*?<'/span>/gi。它在<span class="myClass">...</span>上工作,但在以下内容上失败,仅扩展到第一个</span>:

<span class="myClass"> ... <span class="anything else"> ... </span> ... </span>

我怎样才能从头到尾都匹配?

这个正则表达式应该为您完成任务:

/span's(?:class="myClass")>(.*)<'/span'>/

var txt = '<span class="myClass"><span class="anything else"></span></span>';
txt.match(/span's(?:class="myClass")>(.*)<'/span'>/)

输出

["span class="myClass"><span class="anything else"></span></span>", "<span class="anything else"></span>"]

var txt = '<span class="myClass">foobar</span>';
txt.match(/span's(?:class="myClass")>(.*)<'/span'>/)

输出

["span class="myClass">foobar</span>", "foobar"]

使用regexp解析html是一种糟糕的做法。您可以改为使用DOM。这应该是你想要的:

var value = document.getElementsByClassName("myClass")[0].innerHTML;

您不需要REGEX,只需要Jquery Find假设我们将广告一个div

<div id="myid"><span class="myClass"> ... <span class="anything else"> ... </span> ... </span></div>
spanList = $('myid').find('.myClass, .anything else');