JavaScript Wort finden und ersetzen.

-Rayz-

Lieutenant
Registriert
Okt. 2010
Beiträge
897
Guten Tag :-)

dachte eigentlich das wäre recht simpel aber stehe doch aufm Schlauch.
Also ich habe einen string mit beliebigen Inhalt und ein Array gefüllt mit einer Bezeichnung und einer Beschreibung also [name: string, description: string]

Wenn in dem String der Name gefunden wird, soll das Wort um die Beschreibung erweitert werden.

Mein Lösungsansatz:

Javascript:
let newText = formValue;
glossar.forEach(gloss => {
    const index = newText.toLowerCase().indexOf(gloss.name.toLowerCase());
    if (index !== -1) {       
        const htmlStart = '<span class="glossar-tip border-bottom">';
        const htmlEnd = '<span class="glossar-tip-text">' + gloss.description + '</span></span>';
        const mapped = htmlStart + gloss.name + htmlEnd;
        newText = newText.replace(gloss.name, mapped);
    }
});

Also der Sinn dahinter ist der, dass zu bestimmten Wörtern eine Information beim mouse hover angezeigt werden soll.
Problem ist aber, es soll egal sein ob das zu findende Wort groß oder kleingeschrieben wurde. Um das Wort aber zu finden, müsste ich es im replace auch verkleinern. Dadurch ändere ich aber das Originalwort.

Beispiel:
formValue = "Ich bin ein toller String"

Array Beispiel:
[string, Idiot]

Ergebnis: Ich bin ein toller string Idiot.
Ich brauche aber folgendes: Ich bin ein toller String Idiot.
Das Originalwort muss bestehen bleiben.

Jetzt habe ich zwar den Index, aber ich weiß ja nicht, wielang das Wort ist um es evtl. zwischenzuspeichern. Auch kann es sein, dass das Wort innerhalb einer Liste steht.
<ul><li>Ich bin ein toller String</li></ul>

Bezweifle zwar, dass ich das Problem gut genug erklärt habe aber ich hoffe dennoch dass mir wer auf die Sprünge helfen kann :)

Vielen Dank.
 
Code:
"Ich bin ein toller String".replace(/string/gi, "$& Idiot")
 
  • Gefällt mir
Reaktionen: Hayda Ministral, -Rayz- und Hancock
Perfekt, vielen Dank.
newText = newText.replace(new RegExp('irgendeinText', 'gi'), a => htmlStart + a + htmlEnd);
 

Ähnliche Themen

Antworten
4
Aufrufe
1.760
Kausalat
K
O
2
Antworten
20
Aufrufe
3.038
omaliesschen
O
Zurück
Oben