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

时间:2016-04-07 09:54:47

标签: javascript regex preg-replace regex-negation

我尝试使用正则表达式来获取没有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&gt;&lt; /] +(?!&gt;))

但我对某些标签有问题,比如
实例here

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

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

1 个答案:

答案 0 :(得分:0)

  

使用.split()拆分元素的textContentArray#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>

Fiddle Demo