[javascript] Regular Expression -> WIN2000 trekt Greedy niet

Pagina: 1
Acties:

  • pim
  • Registratie: Juli 2001
  • Laatst online: 20-04 04:12
Ik heb een reguliere expressie die browseronafhankelijk niet op Windows2000 werkt:
http://www.skateboarden-denbosch.nl/test.html

Het probleem zit hem in het greedy vraagteken:

JavaScript:
1
var k = /(q=|query=|userQuery=|[^c]p=|key=|search\/web\/|search=|terms=|qkw=|keywords=|search_for=)(.+[b]?[/b])(&|$)/i.exec(r);


Als ik die weghaal is het opgelost.. Maar dan is de regex incorrect, want hij moet greedy zijn..

Iemand enig idee hoe dat vraagteken wel te gebruiken is in regexen? In een UNIX ReWrite rule, had ik hetzelfde probleem met een regex.

Dit is de error die ik krijg, die in mijn situatie nergens op slaat:
http://msdn.microsoft.com...runexpectedquantifier.asp

[ Voor 2% gewijzigd door curry684 op 11-02-2005 17:08 . Reden: layout ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 08:47

crisp

Devver

Pixelated

welke versie IE? IE5.0x ondersteund inderdaad geen ungreedy modifier.

Je zou je regExp kunnen herschrijven naar bijvoorbeeld dit:
JavaScript:
1
var k = /(q=|query=|userQuery=|[^c]p=|key=|search\/web\/|search=|terms=|qkw=|keywords=|search_for=)([^&]+)/i.exec(r);

[ Voor 123% gewijzigd door crisp op 11-02-2005 17:16 ]

Intentionally left blank


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Ik zou 'm aan 't begin ook anchoren:
code:
1
var k = /[?&\/]..../;

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz