Konvertieren Sie zunächst Ihre string
in Array durch Spaltung es durch Leerzeichen:
var words = str.split(' ');
Dann verwenden Sie array.map um ein neues Array zu erstellen, das die großgeschriebenen Wörter enthält.
var capitalized = words.map(function(word) {
return word.charAt(0).toUpperCase() + word.substring(1, word.length);
});
Entonces beitreten das neue Feld mit Leerzeichen:
capitalized.join(" ");
function titleCase(str) {
str = str.toLowerCase(); //ensure the HeLlo will become Hello at the end
var words = str.split(" ");
var capitalized = words.map(function(word) {
return word.charAt(0).toUpperCase() + word.substring(1, word.length);
});
return capitalized.join(" ");
}
console.log(titleCase("I'm a little tea pot"));
HINWEIS:
Das hat natürlich einen Nachteil. Es wird nur der erste Buchstabe eines jeden Wortes großgeschrieben. Mit Wort ist gemeint, dass jede durch Leerzeichen getrennte Zeichenkette als ein Wort behandelt wird.
Vermutlich haben Sie das:
str = "I'm a little/small tea pot";
Dies führt zu
Ich bin ein wenig klein Teekanne
im Vergleich zu den erwarteten
Ich bin ein kleiner/kleiner Teepott
In diesem Fall können Sie mit Regex und .ersetzen reicht aus:
mit ES6:
const capitalize = str => str.length
? str[0].toUpperCase() +
str.slice(1).toLowerCase()
: '';
const escape = str => str.replace(/./g, c => `\\${c}`);
const titleCase = (sentence, seps = ' _-/') => {
let wordPattern = new RegExp(`[^${escape(seps)}]+`, 'g');
return sentence.replace(wordPattern, capitalize);
};
console.log( titleCase("I'm a little/small tea pot.") );
oder ohne ES6 :
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.substring(1, str.length).toLowerCase();
}
function titleCase(str) {
return str.replace(/[^\ \/\-\_]+/g, capitalize);
}
console.log(titleCase("I'm a little/small tea pot."));
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.