Die CSS-Technik ist in Ordnung, ändert jedoch nur die Darstellung der Zeichenfolge im Browser. Eine bessere Methode besteht darin, den Text selbst groß zu schreiben, bevor er an den Browser gesendet wird.
Die meisten der oben genannten Implikationen sind in Ordnung, aber keine von ihnen befasst sich mit der Frage, was passiert, wenn Sie gemischte Groß- und Kleinschreibung haben, die beibehalten werden müssen, oder wenn Sie beispielsweise echte Groß- und Kleinschreibung verwenden möchten:
"Wo man in den USA promoviert"
oder
"IRS Form UB40a"
Auch bei Verwendung von CultureInfo.CurrentCulture.TextInfo.ToTitleCase (Zeichenfolge) werden Großbuchstaben wie in "Sport und MLB-Baseball" beibehalten, was zu "Sport und MLB-Baseball" wird. Wenn jedoch die gesamte Zeichenfolge in Großbuchstaben geschrieben wird, verursacht dies ein Problem.
Deshalb habe ich eine einfache Funktion zusammengestellt, mit der Sie Groß- und Kleinbuchstaben beibehalten und kleine Wörter in Kleinbuchstaben schreiben können (wenn sie nicht am Anfang und Ende der Phrase stehen), indem Sie sie in String-Arrays für SpecialCases und LowerCases einfügen:
public static string TitleCase(string value) {
string titleString = "";
if (!String.IsNullOrEmpty(value)) {
string[] lowerCases = new string[12] { "of", "the", "in", "a", "an", "to", "and", "at", "from", "by", "on", "or"};
string[] specialCases = new string[7] { "UK", "USA", "IRS", "UCLA", "PHd", "UB40a", "MSc" };
string[] words = value.ToLower().Split(' ');
bool wordAdded = false;
int counter = 1;
foreach (string s in words) {
foreach (string lcWord in lowerCases) {
if (s.ToLower() == lcWord) {
if (counter == 0 || counter == words.Length) { break; };
titleString += lcWord;
wordAdded = true;
break;
}
}
foreach (string scWord in specialCases) {
if (s.ToUpper() == scWord.ToUpper()) {
titleString += scWord;
wordAdded = true;
break;
}
}
if (!wordAdded) {
titleString += char.ToUpper(s[0]) + s.Substring(1).ToLower();
}
wordAdded = false;
if (counter < words.Length) {
titleString += " ";
}
counter++;
}
}
return titleString;
}
Dies ist nur eine schnelle und einfache Methode - und kann wahrscheinlich ein wenig verbessert werden, wenn Sie mehr Zeit damit verbringen möchten.
Wenn Sie die Großschreibung kleinerer Wörter wie "a" und "of" beibehalten möchten, entfernen Sie sie einfach aus dem String-Array für Sonderfälle. Unterschiedliche Organisationen haben unterschiedliche Regeln für die Kapitalisierung.
Sie können ein Beispiel für diesen Code in Aktion auf dieser Site sehen: Egg Donation London - Diese Site erstellt automatisch Breadcrumb-Trails oben auf den Seiten, indem sie die URL z. B. "/ services / uk-egg-bank / Introduction" analysiert Der Ordnername im Trail enthält Bindestriche, die durch Leerzeichen ersetzt werden, und der Ordnername wird groß geschrieben, sodass aus der UK-Eierbank die UK-Eierbank wird. (Beibehaltung des Großbuchstabens 'UK')
Eine Erweiterung dieses Codes könnte darin bestehen, eine Nachschlagetabelle mit Akronymen und Groß- / Kleinbuchstaben in einer gemeinsam genutzten Textdatei, Datenbanktabelle oder einem Webdienst zu haben, damit die Liste der Wörter mit gemischten Groß- und Kleinschreibung von einem einzigen Ort aus verwaltet und auf viele verschiedene angewendet werden kann Anwendungen, die auf der Funktion beruhen.