繁体   English   中英

使用javascript正则表达式获取没有html标签的所有单词

[英]get all words without html tags with javascript regex

我尝试使用正则表达式来获取所有没有html标记的单词,其目的是使用span标记来标记所有单词,以便在我的鼠标停留时能够获取该单词,但保留html初始标记

例如此代码

<p>hello i'm <b>jesus</b></p>

应该成为

<p><span>hello</span> <span>i'm</span><b><span>jesus<span></b></p>

所以,对我来说,第一步是获取所有单词,不带html标签,然后将其替换为span

这是我的JavaScript正则表达式([^ \\ r \\ n \\ t \\ f> </] +(?!>))

但是我对某些标签有一些问题,例如
这里的例子

最后,当我的正则表达式正常时,我可以用$(this).html($(this).html()。replace(reg,“ $ 1”)))替换所有单词。

谢谢您的帮助也许还有另一种方法可以做到这一点...

使用.split()拆分textContent Array#forEach.splitappendChild之后追加元素以迭代数组。

 var ELEMENT = document.getElementsByTagName('p')[0]; var text = ELEMENT.textContent; ELEMENT.innerHTML = ''; text.split(' ').forEach(function(elem) { var span = document.createElement('span'); span.innerHTML = elem; ELEMENT.appendChild(span); }); 
 span { margin-left: 10px; } 
 <p>hello i'm <b>jesus</b> </p> 

小提琴演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM