javascript - 使用 JavaScript 分割包含单词、标点符号,但忽略 HTML

标签 javascript jquery split

我知道有些主题几乎涵盖相同的主题,但我找不到可以帮助我实现所需目标的主题。

所以我有一些包含单词、标点符号和 HTML 的文本

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean semper elit efficitur tempus sagittis. Vivamus at eros — quis velit ornare consequat. Vestibulum suscipit erat enim; sed bibendum augue interdum at.</p>
<p>Sed vulputate ipsum id ullamcorper vehicula. Ut ac ornare risus, id vehicula justo. Quisque pretium, lectus "et rutrum fermentum", leo mauris interdum eros, nec blandit nibh dolor nec enim.</p>

我想做的是用 <span> 包含每个单词和标点符号。元素,同时忽略并保持 HTML 标签完整。我需要包含每个标点符号,即使它们彼此相邻或与一个单词相邻。

所以输出会是这样的

<p><span>Lorem</span> <span>ipsum</span> <span>sit</span> <span>sit</span> <span>amet</span><span>,</span> (etc...)

到目前为止,我已经成功地按空格分割并将结果包含在 <span> 中。 ,但是HTML标签和标点符号让人头疼。 :P

提前致谢!

编辑:

这是我到目前为止使用的代码(如您所见,要拆分的文本位于带有 divid=textarea 元素中:

$('#textarea').each(function(){
    var text = $(this).html().split(" "),
        len = text.length,
        result = []; 

    for( var i = 0; i < len; i++ ) {
        result[i] = '<span class="clickable">' + text[i] + '</span>';
    }
    $(this).html(result.join(' '));
});

最佳答案

你在使用 jQuery 吗?如果是这样,您可以使用 .text() 来解决标签和语法,相当容易地做到这一点。

http://jsfiddle.net/r6dz97ud/

$("p").each(function(i, p) {
    var words = $(p).text()
    $(p).html("")
    $(words.split(" ")).each(function(j, word) {
        var span = $("<span></span>")
        span.html(word)
        $(p).append(span).append("&nbsp;")
    });
});

关于javascript - 使用 JavaScript 分割包含单词、标点符号,但忽略 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28970292/

相关文章:

javascript - 验证 Javascript 中的文本区域

javascript - 尝试在正则表达式中获取数字和特殊字符的最小长度

javascript - 如何使用 jasmine.js 测试 js 函数的一部分?

javascript - Jquery 在悬停时向左滑动一个 div 并在鼠标移出时折叠不正常工作?

linux - 根据特定的搜索模式拆分文件,并使用 AWK 命令在拆分文件中包含特定行数

javascript - 在 addEventListener 中传递参数

javascript - 按 viewBox 值移动事件 SVG

c - 为什么我的C代码在拆分行时会崩溃

javascript - 如何通过下面提到的对象的索引获取第一个对象

javascript - 用JS将php变量拆分为数组