我想使用 JavaScript 查找 HTML 页面中每个单词之间的空格。
示例:
<p>This is sample text</p>
</div>
在此示例中,“this”和“is”以及后面的每个单词之间有一个空格。
我怎样才能实现这个目标?
好的。现在我已经阅读了这里的评论,这是整个代码,它将突出显示页面上的所有文本
recurseDomChildren(document.documentElement, true);
function recurseDomChildren(start, output)
{
var nodes;
if(start.childNodes)
{
nodes = start.childNodes;
loopNodeChildren(nodes, output);
}
}
function loopNodeChildren(nodes, output)
{
var node;
for(var i=0;i<nodes.length;i++)
{
node = nodes[i];
if(output)
{
outputNode(node);
}
if(node.childNodes)
{
recurseDomChildren(node, output);
}
}
}
function outputNode(node)
{
var whitespace = /^\s+$/g;
if(node.nodeType === 1)
{
console.log("element: " + node.tagName);
}else if(node.nodeType === 3)
{
//clear whitespace text nodes
node.data = node.data.replace(whitespace, "");
if(node.data)
{
debugger;
node.parentElement.style.background="yellow";
console.log("text: " + node.data);
}
}
}
我知道这不是正确的答案,但请尝试一下
var str = "this is sample text";
先修剪一下。
str = str.trim();
按空格分割文本(" ")
var array = str.split(" ");
空白将是 array.length -1
这很简单,不知道你到底需要做什么,这里有一些代码会去掉所有 HTML 标签并为你提供空格和单词,然后你可以将其拆分,以便获得所有空格和数组中的单词,然后您可以遍历该数组并按照您的意愿进行操作:
var body = document.getElementsByTagName("body")[0];
var words = body.replace(/(<([^>]+)>)/ig,"").split(" ");