使用Javascript替换textarea中的文本

时间:2012-07-07 06:34:33

标签: javascript

我需要使用Javascript替换正则表达式的所有匹配,直到textarea中的插入位置。 例如,如果textarea中的文本是:“6名学生携带2本书到5个班级”和光标 放在书上,正则表达式为/ \ d /,数字6和2应替换为4,例如4。 我知道替换功能,我知道如何获得插入位置,但我该如何解决这个问题呢? 在此先感谢您的帮助!

2 个答案:

答案 0 :(得分: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;

this jsfiddle中查看它。

答案 1 :(得分:0)

可能有更优雅的方式,但我只是从文本区域复制文本,将字符串拆分为插入位置的两个子串(你说你知道如何找到),在第一个上做替换substring然后将其与第二个子串连接起来。将其复制回文本区域,确保正确更新插入位置。