RegExp: Wie bis zum ersten Vorkommen eines Trenners ersetzen?
enkidu
- javascript
Hi,
ich möchte per JS eine URL modifizieren. Also einen Query-Parameter löschen. Aber meine RegExp greift zu weit!
Input: http://mydomain?aaa=bbb&ccc=ddd&eee=fff&ggg=hhh
Ziel: ccc=ddd eliminieren!
Wenn ich es jetzt mit
newurl = oldurl.replace( /aaa=.+&/, '' )
probiere, wird mir zu viel ersetzt. Und zwar immer bis zum letzten Vorkommen des &. *grmpf* ;) Es kommt also immer http://mydomain?aaa=bbb&ggg=hhh heraus!
Es soll aber das nächste Vorkommen von & genommen werden, nicht das letzte!
Wie muß denn meine RegExp lauten, damit dann hinterher sauber aus
Input: http://mydomain?aaa=bbb&ccc=ddd&eee=fff&ggg=hhh
Ziel: ccc=ddd eliminieren!
Output: http://mydomain?aaa=bbb&eee=fff&ggg=hhh
wird?
Vg,
Enkidu
Hi,
ich möchte per JS eine URL modifizieren. Also einen Query-Parameter löschen. Aber meine RegExp greift zu weit!
Dein Stichwort lautet "greediness".
Cheatah
Dein Stichwort lautet "greediness".
Sehr hilfreich, danke. :(
Ich hab es bereits mit ^ und $ probiert, auch mit ?. Aber komme nicht weiter.
Wenn Du es schon weißt, dann schreib es doch einfach, anstatt so oberlehrerhaft gönnerisch zu tun. Das bringt mir jetzt auch nix!
Enkidu
Hi,
Dein Stichwort lautet "greediness".
Sehr hilfreich, danke. :(
Ich hab es bereits mit ^ und $ probiert,
Warum? Die haben nicht das geringste damit zu tun.
auch mit ?. Aber komme nicht weiter.
Und uns deinen Versuch nicht zu zeigen, hältst du für clever?
Lies bitte die Tipps für Fragende.
Wenn Du es schon weißt, dann schreib es doch einfach, anstatt so oberlehrerhaft gönnerisch zu tun. Das bringt mir jetzt auch nix!
Dumm rummotzen bringt dir auch nichts.
MfG ChrisB
Wenn ich es jetzt mit
newurl = oldurl.replace( /aaa=.+&/, '' )
probiere, wird mir zu viel ersetzt.
Möglichkeit 1: Anstatt . eine negative Zeichenklasse verwenden, welche nur bis zum nächsten & bzw. bis zum String-Ende reicht.
/aaa=[^&]+/g
Möglichkeit 2: Den . mit einem ? einschränken, sodass er nicht mehr »gierig« (»greedy«) ist.
/aaa=.+?&/g
Wie gesagt lautet das Stichwort greediness.
Mathias