Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Regex JavaScript/JQuery für wörtliche Rede
#1
Halli-Hallo,

ich würde mir gerne ein Plugin schreiben, das per Knopfdruck wörtliche Rede in meinen Posts highlighted. Also beginne ich mal damit, mir den richtigen RegEx dafür herauszusuchen. Da habe ich schon Probleme mit, weil ich nicht gerade der RegEx-Spezialist bin...

Ich habe zwei RegEx-Seiten gefunden, die mir meinen Code prüfen, beide kommen zu unterschiedlichen Ergebnissen. Was natürlich doof ist.

Mein Ausgangspunkt:
RegEx
Code:
([„]([^„]+)[“]|[“]([^“]+)[”]|["]([^"]+)["])
Option
Code:
/g

Beispieltext: 3 mal der gleiche Absatz mit den 3 möglichen Varianten von wörtlicher Rede:
Zitat:Then he spoke! Finally! Reached out his hands. He wanted… the dead baby rabbit? That was what this was all about? Aiden just wanted the little thing in his hands? "Well, just ask, right?" Grayson tried a smile and laid the small, dead and very bloody body into his brother’s hands. "Don’ you worry. Just ask. You can have it." Aiden could get everything Grayson had, there was never a doubt. He even would have given him any ice cream or sweet he ever wanted. Because it was Aiden. "Is everythin' okay now?" Was Aiden happy now? Well…. as happy as Aiden could get. He didn’t look like it. But he never looked happy, anyway.


Then he spoke! Finally! Reached out his hands. He wanted… the dead baby rabbit? That was what this was all about? Aiden just wanted the little thing in his hands? „Well, just ask, right?“ Grayson tried a smile and laid the small, dead and very bloody body into his brother’s hands. „Don’ you worry. Just ask. You can have it.“ Aiden could get everything Grayson had, there was never a doubt. He even would have given him any ice cream or sweet he ever wanted. Because it was Aiden. „Is everythin’ okay now?“ Was Aiden happy now? Well…. as happy as Aiden could get. He didn’t look like it. But he never looked happy, anyway.


Then he spoke! Finally! Reached out his hands. He wanted… the dead baby rabbit? That was what this was all about? Aiden just wanted the little thing in his hands? “Well, just ask, right?” Grayson tried a smile and laid the small, dead and very bloody body into his brother’s hands. “Don’ you worry. Just ask. You can have it.” Aiden could get everything Grayson had, there was never a doubt. He even would have given him any ice cream or sweet he ever wanted. Because it was Aiden. “Is everythin’ okay now?” Was Aiden happy now? Well…. as happy as Aiden could get. He didn’t look like it. But he never looked happy, anyway.



Ich zeig erstmal die Seite, die ihn mit diesem Code genau so darstellt, wie ich das Ergebnis gern hätte:
http://scriptular.com/

   


Folgende Seite markiert in dem selben Code dann allerdings markierte Abschnitte im Beispieltext, die ich logischerweise nicht gern hätte:
https://regex101.com/r/eZ1gT7/306

   


Kann mir jemand helfen? Was ist nun richtig?
Oder vielleicht noch wichtiger: Wie wäre der richtige RegEx, wenn meiner falsch ist? Smile

LG
Ama
Zitieren
#2
Nur mal so als Idee von mir. MyBB hat ja auch seinen highlight regex, vieleicht könnte dieser auch bei dir funktionieren.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#3
Aber der sucht Begriffe, oder? Nicht Text innerhalb von zwei Zeichen. Smile
Zitieren
#4
Wenn man die gesuchte Passage eingibt, wird, wenn vorhanden, gehighlight. Einzelne Wörter leider aber auch, wie ich eben sehe. Mit der Suchfunktion kann man dies gut testen.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#5
Ich suche alles, was zwischen zwei Anführungszeichen vorkommt, was gebe ich denn dann in die Suchfunktion ein?
Zitieren
#6
(23.02.2016, 10:15)Amaryllion schrieb: Ich habe zwei RegEx-Seiten gefunden, die mir meinen Code prüfen, beide kommen zu unterschiedlichen Ergebnissen. Was natürlich doof ist.
Es gibt unterschiedliche Implementierung für reguläre Ausdrücke, jede Script-Sprache hat da ihre Besonderheiten. Falls du das ganze also mit PHP umsetzen willst, teste es direkt mit PHP.

Ansonsten probiere es mal mit folgendem Regex:
Code:
([„]([^„“]+)[“]|[“]([^“”]+)[”]|["]([^"]+)["])
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#7
Hey, total klasse! Vielen Dank! Smile

Ja, ich will die Umsetzung erstmal mit Javascript versuchen. Somit ist das genau das Richtige. Smile
Zitieren
#8
Wah, ich stelle gerade fest, mir fehlt noch was zum endgültigen Glück. Könntest Du mir den von Dir gegebenen RegEx noch dahingehend ergänzen, daß er KEINE Anführunsgzeichen berücksichtigt, die INNERHALB von Tags vorkommen?

Also beispielsweise in sowas hier:
Code:
<span class="xyz">

Weil... das zerwürfelt natürlich alles. Rolleyes
Zitieren
#9
So, wenn man nicht jede Idee gleich ausprobiert, muß man viel editieren... Wink
Ich bin jetzt bei diesem hier gelandet:
Code:
(?![^<]*>)([„]([^„“]+)[“]|[“]([^“”]+)[”]|["]([^"]+)["])(?![^<]*>)

Der funktioniert:
https://regex101.com/r/eZ1gT7/308
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Netbeans jquery code completion MatthiasK 2 2.077 05.07.2015, 15:04
Letzter Beitrag: MatthiasK
  Slider jquery 11.1.1 für mybb 1.8 navis 7 3.828 07.11.2014, 21:35
Letzter Beitrag: Risu
  RegEx URL Validierung BroatcasT 5 3.180 18.06.2012, 14:42
Letzter Beitrag: StefanT
  jQuery UI Autocomplete Falkenauge Mihawk 1 2.238 12.02.2012, 19:44
Letzter Beitrag: Falkenauge Mihawk
  [JS] JQuery und Protype, JQuery nutzen? baeckerman83 3 3.173 13.04.2011, 07:48
Letzter Beitrag: thebod