gpt4 book ai didi

javascript - 如何在带空格的单词上添加包装

转载 作者:行者123 更新时间:2023-11-30 15:07:59 26 4
gpt4 key购买 nike

在 JS 中,我需要在整个文档文本单词上添加 span 作为包装器。使用下面的代码我可以添加包装器

function walk(root)
{
if (root.nodeType == 3) // text node
{
doReplace(root);
return;
}
var children = root.childNodes;
for (var i = 0;i<children.length ;i++)
{
walk(children[i]);
}
}

function doReplace(text)
{
var start = counter;
counter = counter+text.nodeValue.length;
var div = document.createElement("div");

var string = text.nodeValue;
var len = string.trim();
if(len.length == 0){
return;
}

var nespan = string.replace(/\b(\w+)\b/g,function myFunction(match, contents, offset, s){
var end = start + contents.length;
var id = start+"_"+end;

start = end;
return "<span class='isparent' id='"+id+"'>"+contents+"</span>";

});


div.innerHTML = nespan;
var parent = text.parentNode;
var children = div.childNodes;
for (var i = children.length - 1 ; i >= 0 ; i--)
{
parent.insertBefore(children[i], text.nextSibling);
}
parent.removeChild(text);
}

使用上面的代码会得到下面的结果

输入:

Stackoverflow 不错

输出:

<span>Stackoverflow</span> <span>is</span> <span>good</span>

预期结果:

<span>Stackoverflow </span><span>is </span><span>good</span>

最佳答案

在单词之后但在第二个单词边界之前向正则表达式添加可选空格字符:\b(\w+\s*)\b

关于javascript - 如何在带空格的单词上添加包装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45475742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com