FHEM Forum

FHEM => Sonstiges => Thema gestartet von: rudolfkoenig am 19 April 2022, 08:57:51

Titel: HTTPMOD: JavaScript Fehler wegen data-pattern mit (?<...) in der HTTPMOD Doku
Beitrag von: rudolfkoenig am 19 April 2022, 08:57:51
Nach Analyse der Meldung hier: https://forum.fhem.de/index.php?topic=127346 bin ich der Ansicht, dass die Ursache eine fehlerhafte data-pattern-Regexp in der HTTPMOD Doku ist.

Kurz: unter Safari erzeugt sowas wie
data-pattern=".?(get|set|reading).*(?<![ldDh])Regex"
einen Fehler, weil (?<...>) die Syntax fuer "Named capturing group" ist, siehe https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges
Titel: Antw:HTTPMOD: JavaScript Fehler wegen data-pattern mit (?<...) in der HTTPMOD Doku
Beitrag von: StefanStrobel am 19 April 2022, 18:38:01
Schade. Ich war froh, mit einem ,,negative look behind" einen Weg gefunden zu haben, der scheinbar funktioniert hat.
Ich wollte das data pattern so bilden, dass es sowohl auf die Ausprägungen von Regex-Attributen als auch auf das regex-Attribut als Regex aus der Attributliste passt.
Und dann muss noch der Unterschied zwischen get01Regex, get01IdRegex und get01ReAuthRegex erkannt werden.
Hat jemand eine gute Idee?

Gruß
     Stefan
Titel: Antw:HTTPMOD: JavaScript Fehler wegen data-pattern mit (?<...) in der HTTPMOD Doku
Beitrag von: rudolfkoenig am 19 April 2022, 19:27:46
ZitatIch wollte das data pattern so bilden, dass es sowohl auf die Ausprägungen von Regex-Attributen als auch auf das regex-Attribut als Regex aus der Attributliste passt.
Das ist loeblich, aber dann kann man auch ein "lesbares" id vergeben :)

Falls mit id nichts gefunden hat, prueft fhemweb.js von vorne nach hinten alle data-pattern Eintraege.
Z.Zt. ohne Abbruch, d.h. es wird der letzte passende Eintrag verwendet.
Das habe ich jetzt "gefixt", ab sofort wird der erste Eintrag verwendet.
Ich meine damit kann man das Problem ohne "negative look behind" durch etwas umsortieren der Eintraege loesen.

Bin nicht sicher, ob es bekannt ist:
- bei der ID-Suche wird [^a-zA-Z0-9_-]/ nach _ konvertiert (sonst steigt jQuery aus).
- bei der data-pattern Suche wird das nicht gemacht, und data-pattern so wie es ist verwendet, d.h. nicht mit ^ und $ ergaenzt.
Titel: Antw:HTTPMOD: JavaScript Fehler wegen data-pattern mit (?<...) in der HTTPMOD Doku
Beitrag von: StefanStrobel am 19 April 2022, 22:23:41
Vielen Dank, das klingt hilfreich.

Da ich gerade nur sehr eingeschränkten Zugriff auf mein Test-System habe, hab ich erst mal die alte Version wieder eingecheckt.

Gruß
    Stefan
Titel: Antw:HTTPMOD: JavaScript Fehler wegen data-pattern mit (?<...) in der HTTPMOD Doku
Beitrag von: betateilchen am 25 April 2022, 12:50:32
Gerade getestet, mit der aktuellen Version von HTTPMOD scheint das Problem behoben zu sein, bei mir tauchen keine Fehlermeldungen mehr auf.

Danke!