首页 文章

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

提问于
浏览
0

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

但是我对某些标签有一些问题
实例here

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

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

1 回答

  • 0

    使用.split()拆分元素的textContent . Array#forEach在.split和appendChild之后迭代数组以追加Element .

    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>
    

    小提琴演示

相关问题