使用 javascript 查找并替换迭代
find-and-replace iteration with javascript
我正在为我的网站制作一个文本编辑器,我需要一个查找和替换功能,它可以在每次出现文本时进行查找、突出显示,并且如果用户选择替换它。然后它移动到下一个事件,并做同样的事情。
我看到了这段代码:
var haystackText = "";
function findMyText(needle, replacement) {
if (haystackText.length == 0) {
haystackText = document.getElementById("haystack").innerHTML;
}
var match = new RegExp(needle, "ig");
var replaced = "";
if (replacement.length > 0) {
replaced = haystackText.replace(match, replacement);
}
else {
var boldText = "<div style=\"background-color: yellow; display: inline; font-weight: bold;\">" + needle + "</div>";
replaced = haystackText.replace(match, boldText);
}
document.getElementById("haystack").innerHTML = replaced;
}
但它只适用于有文本的 div,而不是文本区域,就像我有的那样,而且它发现 and/or 一次替换了所有出现的地方,而不是一个一个地遍历它们。
我怎样才能使这个工作?
如果代码使用 <Div>
标签,那么你应该使用 div 标签。只需让 div 标签可编辑即可。
试试这个:
<div contenteditable="true">This is an editable div</div>
contenteditable 属性指定元素的内容是否可编辑。
我正在为我的网站制作一个文本编辑器,我需要一个查找和替换功能,它可以在每次出现文本时进行查找、突出显示,并且如果用户选择替换它。然后它移动到下一个事件,并做同样的事情。 我看到了这段代码:
var haystackText = "";
function findMyText(needle, replacement) {
if (haystackText.length == 0) {
haystackText = document.getElementById("haystack").innerHTML;
}
var match = new RegExp(needle, "ig");
var replaced = "";
if (replacement.length > 0) {
replaced = haystackText.replace(match, replacement);
}
else {
var boldText = "<div style=\"background-color: yellow; display: inline; font-weight: bold;\">" + needle + "</div>";
replaced = haystackText.replace(match, boldText);
}
document.getElementById("haystack").innerHTML = replaced;
}
但它只适用于有文本的 div,而不是文本区域,就像我有的那样,而且它发现 and/or 一次替换了所有出现的地方,而不是一个一个地遍历它们。
我怎样才能使这个工作?
如果代码使用 <Div>
标签,那么你应该使用 div 标签。只需让 div 标签可编辑即可。
试试这个:
<div contenteditable="true">This is an editable div</div>
contenteditable 属性指定元素的内容是否可编辑。