Reputation: 550
I am trying to replace specific highlighted(marked) text from element.
This is how I get the highlighted text so far:
var markArea = $('.ElementText textarea').get(0);
var text = markArea.value.substring(markArea.selectionStart, markArea.selectionEnd);
So if I have something like this in the textarea: "apple banana apple orange" and mark the third word (apple) I want to replace exactly what I have marked without any other occurrences of "apple" in the textarea.
Is there a way to specify the start and end area where the code should look for replacement in the string?
Upvotes: 6
Views: 637
Reputation: 1771
Wrote this before the above answer, but I'll keep it because it is just a different way of writing the code/doesn't use 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");
Upvotes: 3
Reputation: 2745
You could try something like this,
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);
I'd play with this a little it might be off by 1 on either the startStr or endStr (I always mess that up :/ ) but this should do what you're looking to do.
Upvotes: 5