我需要使用 Javascript 替换正则表达式的所有匹配项直到文本区域中的插入符号位置。例如,如果 textarea 中的文本是:“6 个学生将 2 本书带到 5 个班级”并且光标放在书本上并且正则表达式是 /\d/,则数字 6 和 2 应该替换为,例如, 4. 我知道替换功能,我知道如何获得插入符号的位置,但是我该如何解决这个问题?提前感谢您的帮助!
问问题
1006 次
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中看到它的实际效果。
于 2012-07-07T07:03:27.440 回答
0
可能有一种更优雅的方式,但我只是从文本区域复制文本,将字符串拆分为插入符号位置的两个子字符串(你说你知道如何找到),对第一个子字符串进行替换,然后将它与第二个子字符串连接起来。将其复制回文本区域,确保适当地更新插入符号的位置。
于 2012-07-07T07:00:16.507 回答