reg = new RegExp(' ');
Ziemlich umständliche Schreibweise, man kann auch einfach / / schreiben.
Noch was zu /\s/G: Es gibt keinen G-Flag, aber einen g-Flag für "global match". Was an der Stelle keinen Unterschied macht, jedenfalls hilft der einem nicht dabei, die Position des gefundenen Zeichens zu finden. /\s/G müsste einen Syntaxfehler erzeugen.
Und zu /^.*\b/: Der Punkt darf natürlich nicht mit \ maskiert sein. Außerdem wird dieser (korigierte) Ausdruck nicht funktionieren, weil .* greedy (gierig) ist. Dieser Teilausdruck schluckt soviele Zeichen wie möglich (also den ganzen Namen) und bricht nicht beim ersten Nicht-Wort-Zeichen (\b) ab. Dazu müsste man /^.+?\b/ verwenden. Mit .+ mindestens ein Zeichen, aber durch das ? dahinter nicht gierig, sodass nur "Brigitte" gefunden wird.
if (reg.test(wert)
vorname = RegExp.leftContext;
leftContext ist Netscape JavaScript, seit Version 1.5 missbilligt, weil nicht in ECMAScript standardisiert und i.d.R. schlicht nicht benötigt. Ob das alle Browser unterstützen, kann daher bezweifelt werden.
Mathias