Hier ist meine Funktion, die den Titel in Großbuchstaben umwandelt, aber auch definierte Akronyme in Großbuchstaben und kleinere Wörter in Kleinbuchstaben beibehält:
String.prototype.toTitleCase = function() {
var i, j, str, lowers, uppers;
str = this.replace(/([^\W_]+[^\s-]*) */g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
// Certain minor words should be left lowercase unless
// they are the first or last words in the string
lowers = ['A', 'An', 'The', 'And', 'But', 'Or', 'For', 'Nor', 'As', 'At',
'By', 'For', 'From', 'In', 'Into', 'Near', 'Of', 'On', 'Onto', 'To', 'With'];
for (i = 0, j = lowers.length; i < j; i++)
str = str.replace(new RegExp('\\s' + lowers[i] + '\\s', 'g'),
function(txt) {
return txt.toLowerCase();
});
// Certain words such as initialisms or acronyms should be left uppercase
uppers = ['Id', 'Tv'];
for (i = 0, j = uppers.length; i < j; i++)
str = str.replace(new RegExp('\\b' + uppers[i] + '\\b', 'g'),
uppers[i].toUpperCase());
return str;
}
Zum Beispiel:
"TO LOGIN TO THIS SITE and watch tv, please enter a valid id:".toTitleCase();
// Returns: "To Login to This Site and Watch TV, Please Enter a Valid ID:"
1 Stimmen
Es gibt verschiedene Methoden, haben wir einige Leistungsstatistiken?
1 Stimmen
@theAnubhav ja wir haben jetzt eine Benchmark
2 Stimmen
Wir schreiben das Jahr 2022, und die Browser verfügen immer noch nicht über eine native Funktion für diese Aufgabe.
1 Stimmen
Diese Schreibweise ist zu 100 % sprach-, orts- und kulturabhängig.
0 Stimmen
Ich möchte, dass einer der Testfälle für die Lösung "Comhrá i mBÁC le Seán Nguyen" lautet - viel Glück dabei! Im Grunde genommen ist die Vorstellung, dass ein Computer so etwas wie "Titelverhüllung" leisten kann, wahrscheinlich hoffnungslos, selbst wenn er über riesige Mengen an Ressourcen für maschinelles Lernen verfügt.