我有几个不同的单词需要使用Javascript替换为不同的单词。我想我可以使用replace函数来实现这一点,但它似乎只在第一次调用时起作用。
然而,由于我需要替换的单词彼此相似,这导致了某种问题,我不知道如何修复它。我还真的需要用Javascript而不是jQuery来做这件事。谢了。
例:
function color() {
document.body.innerHTML = document.body.innerHTML.replace(/A/g, "<span style='color:#FF0000;'>A</span>");
document.body.innerHTML = document.body.innerHTML.replace(/A1/g, "<span style='color:#0000FF;'>A1</span>");
}
<html>
<body>
<h3>A</h3>
<h3>A1</h3>
<button onclick="color()">click</button>
</body>
</html>
在几乎所有情况下,执行body.innerHTML
替换都是错误的。它可能看起来适用于一些微不足道的示例,但对于任何非微不足道的应用程序,它都会失败。请参阅不要使用正则表达式解析超文本标记语言。
要了解为什么这种方法不可行,请考虑您的文档是否包含以下元素:
<div style="color: #AA144"></div>
您的正则表达式如何知道不要在这个属性字符串中为每个< code>A或< code>A1加上一堆跨度呢?不会的。
相反,使用文档对象模型,它是一个表示标记的树结构(所有的HTML解析都是为您完成的!).遍历树中的节点,操作每个节点的< code>textContent,执行替换:
for (const parent of document.querySelectorAll("body *")) {
for (const child of parent.childNodes) {
if (child.nodeType === Node.TEXT_NODE) {
const pattern = /(A1|A)/g;
const replacement = "<span style='color:#FF0000;'>$1</span>";
const subNode = document.createElement("span");
subNode.innerHTML = child.textContent.replace(pattern, replacement);
parent.insertBefore(subNode, child);
parent.removeChild(child);
}
}
}
body {
background: white;
}
<div>
foobar
<div>
<div style="color: #AA144">
foobazz A1
</div>
foo quuz AA
<h4>coraaAge</h4>
<p>
A bA bAA ello world A1
</p>
</div>
</div>
问题内容: 我想用php代替完整的单词 示例:如果我有 我用 新文本应如下所示 新hello1您好,Helloz PHP返回 NEW hello1 hello,NEWz 谢谢。 问题答案: 您要使用正则表达式。该单词边界匹配。 如果包含UTF-8文本,则必须添加Unicode修饰符“ u”,以便不会将非拉丁字符误解为单词边界:
我想替换字符串中的一些单词。我有可行的解决方案,但我认为这不是最好的。你能帮我做些更有效的事情吗 代码是avaiable在这里:https://codepen.io/yasAFE/pen/BYOVme
问题内容: 目的 我有一个简单的表,列出了名称(在局部视图中),并且在其上方有一个包含这些名称的下拉列表。目的是根据在下拉列表中选择的名称来过滤表。下拉列表中的选定值更改后,应立即进行过滤,并且应仅再次呈现部分视图。 问题 当我在下拉列表中选择一个值时,部分视图不会在其他视图中呈现,而是显示为整个页面。但是,当我在Ajax.BeginForm块中包含一个提交按钮并触发对提交按钮的操作时,它确实可以
我正在使用以替换子字符串 我现在面临的问题是,只有在字符串替换不支持的情况下,我才想要替换整个单词。< br >因为我必须替换非常非常大的字符串,可能以GB为单位。与字符串替换相比,正则表达式非常慢。< br >例如:text: - 正则表达式将时间缩短了近 100 倍(https://medium.com/codezillas/golang-replace-vs-regexp-de4e48482
大家好,我不需要答案,但我想知道并找出我做错了什么。作为一名初学者,我的学习任务非常“简单”。我需要创建一个字符串,在这个字符串中,我需要用其他单词替换一些单词,而不需要使用for循环:(我也想打印它,但我不知道该把Console.WriteLine放在哪里。谷歌搜索1小时不起作用,或者问了一个同事。 /*练习:与stringBuilder一起使用*猫变成小猫*狗变成小狗*老鼠变成小鼠*单词必须替
我有一个数据框(我们称之为“littletext”),它有一列,每行中都有句子。我还有另一个表(我们称之为“littledict”),我想用它作为参考,以查找和替换“littletext”每行中的单词和/或短语。 这是我的两个数据帧。我在这个例子中对它们进行了硬编码,但会在“现实生活”中将它们加载为csv文件: 我希望按照下面的说明修改“littletext”,其中Python将查看“little