我正在尝试从元素中替换特定的突出显示(标记)文本。
这是我到目前为止获得突出显示文本的方式:
var markArea = $('.ElementText textarea').get(0);
var text = markArea.value.substring(markArea.selectionStart, markArea.selectionEnd);
所以,如果我在textarea中有类似的东西:“apple banana apple orange”并标记第三个单词(apple)我想在textarea中替换我标记的没有任何其他“apple”的内容。< / p>
有没有办法指定代码应该在字符串中查找替换的开始和结束区域?
答案 0 :(得分:5)
你可以尝试这样的事情,
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关闭(我总是把它搞砸了:/)但是这应该做你想做的事。
答案 1 :(得分:3)
在上面的答案之前写了这个,但是我会保留它,因为它只是编写代码的一种不同方式/不使用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");