flaffy: key=value Paare mit RegExp parsen

Huhu

Ich würde gerne Strings in Form von key=value per RegExp parsen. Mein bisherige Versuch...

var re = /(\w*)=(\w*)</g;

Funktioniert solange es sich um einzelne Worte handelt ("key=" -> funktioniert "key 1=" -> funktioniert nicht mehr)

Mein zweiter Versuch war...

var re = /(.*)=(.*)</g;

Was mir allerdings nur einen großen String zurückgibt, da er anscheinend das = auch mit dem . "mitparst".

Wie kann man denn nun diese Key-Value-Paare getrennt durch ein = parsen? Hat jemand eine Idee?

(Restlicher Code:)

re.lastIndex = 0;

var a = null;
 var i = 0;

while( ( a = re.exec( str ) ) != null )
 {
  i++;
  if( i > 10 )
  {
   break;
  }
  alert( a[ 1 ] );
 }

  1. Hell-O!

    Ich würde gerne Strings in Form von key=value per RegExp parsen.

    Warum so umständlich, schau dir mal Zerlegen des Querystrings in Name/Werte-Paare an.

    Unabhängig davon:

    var re = /(\w*)=(\w*)</g;
    Funktioniert solange es sich um einzelne Worte handelt ("key=" -> funktioniert "key 1=" -> funktioniert nicht mehr)

    Woher kommen die Wertepaare? Ein Leerzeichen ist normalerweise nicht erlaubt. Zudem matcht dein Ausdruck nie auf kodierte Querystrings, da diese auch verschiedene Sonderzeichen enthalten können.

    var re = /(.*)=(.*)</g;
    Was mir allerdings nur einen großen String zurückgibt, da er anscheinend das = auch mit dem . "mitparst".

    Ja, der Ausdruck ist zu gierig. Sollte es denn unbedingt ein Regulärer Ausdruck sein, schau dir mal die Referenz zum RegExp-Objekt und das Kapitel über reguläre Ausdrücke an.

    Siechfred

    --
    Hier könnte Ihre Werbung stehen.
    Schöne Wörter, Teil 1 || Geld stinkt nicht
  2. Ich würde gerne Strings in Form von key=value per RegExp parsen. Mein bisherige Versuch...

    var re = /(\w*)=(\w*)</g;

    Was spricht gegen split('=')?

    Struppi.