Javascript查找除<a>标签中的文本之外的所有文本

Val*_*rio 2 html javascript regex

我有一个div,这个div可以(或不能)将html元素作为子元素.使用我的javascript,我需要找到此div中所有出现的单词,除了<a>标签中的那些单词.

例如:

<div id="dictionable">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    <br/><br/>
    <a href="#lorem">lorem</a>
    <br/><br/>
    <p>lorem</p>
</div>
Run Code Online (Sandbox Code Playgroud)

我尝试使用我的超低功能构建一个正则表达式,失败了.所以我用Google搜索并发现了这个:

var pattern = new RegExp('(lorem)(?![^<]*>|[^<>]*</)', 'gim');
Run Code Online (Sandbox Code Playgroud)

这个正则表达式发现每次出现"lorem"但不是每个标签.我只需要排除A标签.

谁能帮助我?

Nie*_*sol 6

没有正则表达式.绝对没有正则表达式.新加坡国立大学医院,嗯.不.

var copy = document.getElementById('dictionable').cloneNode(true),
    links = copy.getElementsByTagName('a'), l = links.length, i;
for( i=l-1; i>=0; i--) {
    // always work in reverse order when deleting stuff, it's safer!
    links[i].parentNode.removeChild(links[i]);
}

var result = copy.textContent || copy.innerText;
Run Code Online (Sandbox Code Playgroud)

繁荣!

  • @Valerio`result`变量包含您的文本.用它做你想做的事. (2认同)