使用Javascript替换文本区域中的文本

Replace text in textarea using Javascript

本文关键字:文本 区域 使用 替换 Javascript      更新时间:2023-09-26

我需要使用Javascript替换正则表达式的所有匹配项,直到文本区域中的插入符号位置。例如,如果文本区域中的文本为:"6名学生携带2本书到5节课",并且光标放在书上,正则表达式为/''d/,则数字6和2应替换为4。我知道替换函数,也知道如何获得插入符号的位置,但我该如何解决这个问题?感谢您提前提供的帮助!

textareaClicked = function(e){
    var pos = e.target.selectionStart;
    var beforeSelection = e.target.innerHTML.slice(0,pos);
    var afterSelection = e.target.innerHTML.slice(pos);
    var newHTML = beforeSelection.replace(/'d/g,4) + afterSelection;
    e.target.innerHTML = newHTML;
    e.target.setSelectionRange(pos,pos);
};
document.getElementById('foo').onclick=textareaClicked;

看看它在这个jsfiddle中的作用。

可能有一种更优雅的方法,但我只需要从文本区域复制文本,在插入符号位置将字符串拆分为两个子字符串(你说你知道如何查找),对第一个子字符串进行替换,然后将其与第二个子字符串连接。将其复制回文本区域,确保适当更新插入符号的位置。