Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 4 von 4
  1. #1
    Stammgast
    Registriert seit
    03.03.2007
    Ort
    Schleswig-Holstein
    Beiträge
    363

    Standard RegEx Modifier s

    Hi,

    Ich erweitere gerade meine kleine Bibliothek und vermisse den Modifier s für RegularExpressions.
    Unter FF, Chrome und Safari funktioniert folgende RegEx ohne Fehler ( auch in der Konsole ):
    Code:
    var rx = /<script[^>]*>(.*)<\/script>/is;
    var m = rx.exec( somehtmltext );
    In m[1] habe ich jetzt den kompletten mehrzeiligen Text innerhalb des ersten Script-Tag aus somehtmltext.

    Die M$ Browser kommen aber mit dem Modifier s leider nicht zurecht. I.d.R. würde ich das ja verfluchen, aber genau genommen haben die M$-Browser in dem Fall recht, da unter JS der Modifier s lt. Doku nicht existiert.
    Wie mache ich es nun aber, dass ich in Gruppe 1 der Matches den kompletten mehrzeiligen Text innerhalb des <script>-Tags bekomme?
    m und y bringen keinen Erfolg.

    Danke
    PHP rocks!
    Eine Initiative der PHP Community

  2. #2
    Stammgast
    Registriert seit
    03.03.2007
    Ort
    Schleswig-Holstein
    Beiträge
    363

    Standard

    Habs gerade selber noch gefunden:
    Code:
    /<script[^>]*>([^]*)<\/script>/is
    So funktioniert es zumindest in den richtigen Browsern. Bin gerade am MacBook und kann den IE oder Edge auf die Schnelle nicht testen.
    Hole ich morgen früh nach und geb nochmal einen Status, ob der das auch frisst.

    Gruß Arne
    PHP rocks!
    Eine Initiative der PHP Community

  3. #3
    Stammgast
    Registriert seit
    18.07.2008
    Beiträge
    3.073

    Standard

    Danke fürs Posten der Lösung

  4. #4
    Stammgast
    Registriert seit
    03.03.2007
    Ort
    Schleswig-Holstein
    Beiträge
    363

    Standard

    Der IE/Edge scheint das auch zu können, zumindest meckert er das nicht mehr an. Dafür aber einen Haufen anderer Dinge

    Ich bin es bspw. gewohnt, folgende Iteration für Collections zu verwenden:
    Code:
    myArray.forEach( (i) => { ... });
    Da hat die M$-Fraktion gleich mehrere Probleme mit! Zum Einen funktioniert forEach() bspw. nicht für NodeList und zum Anderen mag er die Schreibweise (i) => { ... } nicht.
    Um es IE konform zu haben, muss also sowas her:
    Code:
    [].forEach.call(myArray, function(i) { ... });
    Daran scheinen aber andere Browser wiederum keinen Gefallen zu finden.

    Es bleibt also weiterhin lustig...
    PHP rocks!
    Eine Initiative der PHP Community

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •