|
|||
RegEx Problem
Hallo Community,
ich habe ein Problem beim ersetzen von bestimmten Wörtern. Ich iteriere ein JS-Objekt in folgender Form: Code:
var smileys = { bored: '\\._\\.|:\\|', sunglasses: '(?:B|8)\\)', ... } Code:
message = message.replace(new RegExp('(^|\\s)(' + smileys[name] + ')(\\s|$)', 'g'), '$1<span class="smiley inner ' + name + '">$2</span>$3'); Funktioniert auch, wenn man verschiedene Smileys hintereinander schreibt. Z.B. ._.[LEERZEICHEN]B) Wenn man nun aber den gleichen 2 mal hintereinander schreibt, also z.B. ._.[LEERZEICHEN]._., funktioniert es nicht. Nun frage ich mich also: 'Wieso ?'. Das Einzige, was mir in den Sinn kam war, dass das hintere Leerzeichen beim ersten Smiley auch nur bei dem ersten Smiley gematcht wird und beim zweiten sozusagen nicht existiert, da es schon gematcht wurde. Surprise. Richtig vermutet. Danach habe ich die Hintere Klammer (\\s|$) und das $3 im RegEx entfernt. Nun matcht aber auch B)B) und wird zu [SMILEY]B). Unschön. Meine Frage an euch: Wie würdet ihr es machen, dass auch aufeinander folgende Smileys korrekt gematcht werden ? Meine Ideen wären: 1. Das globale-Flag 'g' rausnehmen und den replace in einer while-Schleife ausführen lassen ? Würde mir nicht wirklich zusagen, obwohl es funktionieren sollte, ist aber sehr hässlich. 2. Anstatt dem String mit den Dollarzeichen eine Funktion verwenden, die aufgrund der Property 'index', des JS-Objekts, dass die replace-Funktion zurückgibt prüft, ob das nächste Zeichen existiert oder ein Leerzeichen ist ? Irgendwie sind die ganzen Lösungsansätze die mir einfallen ziemlich unschön, ich hoffe euch fällt was besseres ein. Mit freundlichen Grüßen CrunkJuice |
Sponsored Links |
|
|||
Naja .. ich habs jetzt so gelöst
Code:
for (var name in smileys) { while (!!message.match(new RegExp('(^|\\s)(' + smileys[name] + ')(\\s|$)'))) message = message.replace(new RegExp('(^|\\s)(' + smileys[name] + ')(\\s|$)'), '$1<span class="smiley inner ' + name + '">$2</span>$3'); } |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Design zu CSS/HTML verarbeiten - Problem häufen sich. | Grafikamateur | CSS | 2 | 06.08.2007 10:57 |
Regex Problem ("]" killt die regex) | psycho_dmr | Serveradministration und serverseitige Scripte | 7 | 29.04.2007 17:49 |
Problem mit WordPress und dem Bilder Upload | Maxefix | Serveradministration und serverseitige Scripte | 0 | 19.12.2006 15:58 |
Problem bei Div's - zwei mal das gleiche und doch nicht ... | Niriel | CSS | 10 | 09.06.2005 18:39 |
Problem mit einem CSS Layout | nARC | CSS | 20 | 21.05.2005 07:28 |