Colocar um texto realçado pelo usuário em volta das tags?

Eu preciso para obter o usuário selecionado área de uma área de texto e, em seguida, insira<a> tags redondas.

Eu uso isso para obter a área selecionada pelo usuário:

var textComponent = document.getElementById('article');
var selectedText;

if (document.selection != undefined)
{
    textComponent.focus();
    var sel = document.selection.createRange();
    selectedText = sel.text;
}

// Mozilla version
else if (textComponent.selectionStart != undefined)
{
    var startPos = textComponent.selectionStart;
    var endPos = textComponent.selectionEnd;
    selectedText = textComponent.value.substring(startPos, endPos)
}

Agora, eu sei que posso fazer uma pesquisa por cadeia de caracteres para o texto selecionado pelo usuário e inserir tags em torno dele, mas o que acontece se o texto selecionado pelo usuário aparecer duas vezes no texto, por exemplo.

Olá a você, adeus a você.

Se o usuário destacar o segundo "você" para o link que deseja, com certeza uma substituição de string colocaria uma tag em cada instância de "você".

Qual é a melhor forma de fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion