.replace mit mehreren Suchwörtern die zu ersetzen sind.


TheGateway

Mitglied
Hi,

ich bin auf der Suche nach einer Lösung für

Code:
var str = data.text;
var res = str.replace("suche1", "suche2", "suche3", "ersetzen1", "ersetzen2", "ersetzen3");

leider gibt das so replace nicht her, ich habe versucht mit maps zu arbeiten aber habe es auch nicht geschafft.
hat jemand eine idee ?

Code:
ar res = str.replace(":-(", "<img src=\"Laugh.png\"></img>");

es geht um ":)" die ersetz werden sollen durch images, aber es sollen mehrere ersetzt werden, nicht nur eins...
 

Sempervivum

Erfahrenes Mitglied
Da sehe ich zwei Lösungen:
1. Du kannst die replace-Anweisungen verketten:
var res = str.replace("suche1", "ersetzen1").replace("suche2", "ersetzen2").replace("suche3", "ersetzen3");
Das eignet sich, wenn es nur wenige Ersetzungen sind.
2. Wenn es viele Ersetzungen sind, lohnt es sich, dafür ein Array anzulegen, etwa so:
Code:
const replaceparam = [
    ["suche1", "ersetzen1"],
    ["suche2", "ersetzen2"],
    ["suche3", "ersetzen3"],
    // usw.
    ["suchen", "ersetzenn"]
];
und dann mit einem forEach die Ersetzungen durchzuführen.
 

Sempervivum

Erfahrenes Mitglied
Nein, meine Ergänzung bezog sich nur darauf, dass ja mehrere gleiche Smilies vorkommen können und Du alle ersetzen musst. Für deine eigentliche Aufgabe kenne ich keine Funktion in Javascript, anders als in PHP, wo die Parameter Arrays sein können.
 

TheGateway

Mitglied
zwar keine schöne sache, aber funktioniert :)

Code:
var str = data.text;
var res = str.split(":-)").join("<img src=\"/Laugh.png\"></img>").split(":-(").join("<img src=\"/Pudently.png\"></img>");
 

TheGateway

Mitglied
ich muss nochmal stören *g*

Code:
str = "/bild http://google.de/bild.jpg";
var bild = str.replace('/bild', '') // comando /bild entfernen aus string


var res = str.split("/bild").join("<img src=\"" + bild + "\"></img>");

// ergibt -> <img src="http://google.de/bild.jpg"></img> http://google.de/bild.jpg

jemand eine idee wie ich nur das Bild bekomme ? und nicht nocheinmal den link dazu ?