key=value Paare mit RegExp parsen
flaffy
- javascript
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 ] );
}
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
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.