我需要使用Javascript替换正则表达式的所有匹配,直到textarea中的插入位置。 例如,如果textarea中的文本是:“6名学生携带2本书到5个班级”和光标 放在书上,正则表达式为/ \ d /,数字6和2应替换为4,例如4。 我知道替换功能,我知道如何获得插入位置,但我该如何解决这个问题呢? 在此先感谢您的帮助!
答案 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然后将其与第二个子串连接起来。将其复制回文本区域,确保正确更新插入位置。