Sup!
wenn ich dagegen ein * hinter \s setze also:
var reg = /^.+(.*(\s*)(\d+)/; dann:"Dokumentation (max 700 Tage" >>gibt 0
"Test(7 Tage)" >>gibt 7 zurück
Okay...
Step by Step...
/^ -> sucht Anfang...
.+ -> 1 oder mehr beliebige Zeichen -> D
-> T
( -> Klammer -> Dokumentation (
-> Test(
Tja... und dann kommts.
Du suchst mit .*(\s*)(\d+) beliebig viele beliebige Zeichen (und danach beliebig viele Whitespaces, was nicht viel Sinn macht, weil es in "beliebige Zeichen" mit drin ist) und eine Zahl.
Nun sind RegExp "Greedy" - darum verbraucht er bei "max 700"
alles bis zur letzten 0 als "beliebig viele beliebige Zeichen".
Bei (7 Tage) gibt's nur die eine Zahl, darum kriegst Du sie auch. Bei 07 oder 87 wuerdest Du auch 7 bekommen.
Dein Problem koennte geloest werden, denn es gibt mit dem ? Operator eine Moeglichkeit, die RegExp "non-greedy" zu machen.
Einziges Problem hier: Geht nicht im IE, denn der ist zu bloed.
Gruesse,
Bio