Как заменить выделенный текст на свой?
Залил пример, попробуйте - codepen.io/anon/pen/rxKGwZ<textarea id="text"></textarea>
<button id="go">Кнопка</button>function replaceSelectedText(elem, str){
	elem.focus();

	if (document.selection){
		var s = document.selection.createRange(); 
		if (s.text){
			eval("s.text="+str+"(s.text);");
			s.select();
			return true;
		}
	}
	else if (typeof(elem.selectionStart) == "number"){
		if (elem.selectionStart!=elem.selectionEnd){
			var start = elem.selectionStart;
			var end = elem.selectionEnd;

			eval("var rs = "+str+"(elem.value.substr(start,end-start));");
			elem.value = elem.value.substr(0,start)+rs+elem.value.substr(end);
			elem.setSelectionRange(end,end);
		}
		return true;
	}
	return false;
}

//оборачиваем текст в нужные теги и т.д.
function change_str(s){return "<b>"+s+"</b>"}

// по клику на кнопку, выделенный текст будет заменен на текст с тегами
document.getElementById('go').onclick = function() {
	replaceSelectedText(document.getElementById('text'), 'change_str');
}
Здравствуйте. Получайте выделенный текст, так как Вы можете.
Далее вытаскиваете ВЕСЬ текст из textarea и заменяете ваш выделенный текст через метод textAreaText.replace(выделенный текст, новый текст)
javascript.ru/string/replace