我需要使用javascript在我的网页中模拟查找和替换功能,无论是查找还是替换,但问题是如何在替换之前突出显示textArea中匹配的搜索结果.我尝试用Bold Tag替换匹配的结果,但它不起作用,因为textArea不理解HTML标记.
我使用了以下代码:
function findMyText(searchTxt) {
var textAreaTxt = "";
textAreaTxt = document.getElementById("myTxtAreaID").value;
var match = new RegExp(searchTxt, "ig");
var boldText = '<B>' + searchTxt+ '<\/B>';
var replaced = textAreaTxt .replace(match, boldText);
document.getElementById("myTxtAreaID").value= replaced;
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以在textArea中突出显示搜索结果,或者如何使textArea理解HTML标签
提前致谢
t = document.getElementById("myTxtAreaID");
l = t.value.indexOf(searchText);
if(l!=-1){
t.selectionStart = l;
t.selectionEnd = l+searchText.length
}
Run Code Online (Sandbox Code Playgroud)
该代码的作用是找到找到的文本的开头,并为textarea设置selectionStart和selectionEnd值.这只是选择文本,就像用户自己选择了文本一样.在这里工作演示
textarea 无法呈现 htmltags,您必须隐藏 textarea 并在 div 或 iframe 中呈现内容。这是许多所见即所得编辑器使用的技术。另一种方法是使用 contentEditable div