/*
gruss Michael,
regulaere ausdruecke sind schon sehr maechtige und elegante hilfsmittel,
da es sich aber in erster linie um suchmuster handelt, gibt es fuer komplexe
_suchen_und_ersetzen_aufgaben_ nicht _die_eine_killer-RegExp_;
es ist also durchaus auch guter stil, sich dem ziel mit einem mix aus
suchmustern und test-schleifen zu naehern:
*/
var testString = "\nliebe freunde,\n\nwie kann ich in allen worten in einem string den ersten buchstaben (mit hilfe von regExp)groß machen?\n\nfolgender ansatz hat nicht funktioniert:\n";
alert(testString);
// var testStringArray = testString.split(/\W/); // schnelltest fuer einen loesungsansatz;
// var testStringArray = testString.split(/\s/); // schnelltest fuer einen loesungsansatz;
// alert("["+testStringArray.join("]\n[")+"]"); // schnelltest fuer einen loesungsansatz;
var testStringArray = new Array();
var regExpression = /([^\W]*\W)/; // im gegensatz zu "String.split" bleiben hier alle zeichen aus "testString" erhalten;
while (regExpression.test(testString)) {
testStringArray[testStringArray.length] = (regExpression.exec(testString)[1]); // MSIE5 kennt "Array.push" nicht;
testString = testString.replace(regExpression,""); // vehindert die gefangennahme durch eine endlosschleife;
}
alert("["+testStringArray.join("]\n[")+"]");
for (var i=0;i<testStringArray.length;i++) {
testString = testStringArray[i];
testStringArray[i] = testString.charAt(0).toUpperCase() + testString.substring(1); // es muss nicht immer RegExp sein;
}
testString = "[" + testStringArray.join("]\n[") + "]";
alert(testString);
testString = testStringArray.join("");
alert(testString);
//
// getestet auf NN4.x, mozilla, opera7, msie5;
by(t)e by(t)e - peterS. - pseliger@gmx.net
--
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)