Label data-substitution Regex Escape Character?

Begonnen von ebk, 07 September 2016, 14:55:21

Vorheriges Thema - Nächstes Thema

ebk

Hallo zusammen,

ich habe ein Label das eine Reihe von URLs enthält. Diese werden vorher mit HTTPMOD aus einer Webseite extrahiert und müssen nun noch modifiziert werden. Es soll vor /Fahrinfo nur noch http://fahrinfo.bvg.de eingfügt werden. Allerdings scheitere ich im Moment daran, den Slash richtig zu escapen...

Bisher habe ich im Label Widget folgenden Code:

<div data-type="label"
data-device="BVG"
data-get="Abfahrten"
data-substitution="s/\/Fahrinfo/http:\/\/fahrinfo.bvg.de\/Fahrinfo/g'
class="cell small"></div>


leider bekomme ich damit keine Anzeige bzw. einen Fehler in der widget_label.js zeile 48 (Uncaught SyntaxError: Invalid flags supplied to RegExp constructor 'http:\'). Wenn ich die Regex so abändere, dass keine Slashes mehr außen den Separatoren enthalten sind, funktioniert es problemlos (allerdings habe ich dann leider nicht das Ergebnis das ich  brauche).

Ich habe verschiedene Kombinationen von ', " und anderen Escape Zeichen versucht, lande aber immer wieder beim gleichen Fehler.

Ich wäre deshalb für jeden Tipp dankbar, wie ich die RegEx ändern müsste

Viele Grüße
ebk

setstate

Der Trick ist hier, die JS Funktion split() zu überlisten.
Der substitution String wird bei den "/" aufgesplittet, um dann für die replace() Funktion die richtigen Parameter zusammen zubauen.
Bei deinem String, was "/" beinhaltet, muss man einfach einen anderen Delimiter benutzen. "#" zum Beispiel

data-substitution="s#/Fahrinfo#http://fahrinfo.bvg.de/Fahrinfo#g"