[英]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
在.split
和appendChild
之后追加元素以迭代数组。
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.