Tags um vom Benutzer markierten Text setzen?

Ich muss den vom Benutzer ausgewählten Bereich eines Textbereichs abrufen und dann einfügen<a> Tags runden es ab.

Ich benutze dies, um den vom Benutzer ausgewählten Bereich zu erhalten:

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)
}

Jetzt weiß ich, dass ich nach dem vom Benutzer ausgewählten Text eine Zeichenfolgensuche durchführen und um diesen herum Tags einfügen kann. Was passiert jedoch, wenn der vom Benutzer ausgewählte Text beispielsweise zweimal im Text erscheint?

Hallo an dich, auf Wiedersehen an dich.

Wenn der Benutzer das zweite "Sie" für den gewünschten Link hervorhebt, würde ein String-Ersetzungsbefehl mit Sicherheit ein Tag um jede Instanz von "Sie" setzen.

Was ist der beste Weg, dies zu tun?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage