jQuery替换标记的文本

jQuery replace marked text

本文关键字:文本 替换 jQuery      更新时间:2023-09-26

我正在尝试替换元素中特定的高亮显示(标记)文本。

到目前为止,我就是这样得到突出显示的文本的:

var markArea = $('.ElementText textarea').get(0);
var text     = markArea.value.substring(markArea.selectionStart, markArea.selectionEnd);

因此,如果我在文本区域中有这样的内容:"苹果香蕉苹果橙"并标记第三个单词(苹果),我想完全替换我标记的内容,而不在文本区域出现任何其他"苹果"。

有没有一种方法可以指定代码应该在字符串中查找替换的起始和结束区域?

你可以试试这样的东西,

var markArea = $('.ElementText textarea').get(0);
var startStr = markArea.value.substring(0,markArea.selectionStart);
var endStr   = markArea.value.substring(markArea.selectionEnd);
var text     = startStr +"REPLACEMENT VALUE HERE"+ endStr;    
$('.ElementText textarea').val(text);

我会玩一点这个,它可能在startStr或endStr上偏离1(我总是把它搞砸:/),但这应该能做你想做的事情。

在上面的答案之前写了这个,但我会保留它,因为这只是一种不同的代码编写方式/不使用jQuery:

function replaceAtIndex(str,s,e,rep){
   return str.slice(0,s) + rep + str.slice(e);
}
markArea.value = replaceAtIndex(markArea.value,markArea.selectionStart,markArea.selectionEnd,"replacement");