Hàm bên dưới không thay đổi bất kỳ phần nào khác của chuỗi ngoài việc cố gắng chuyển đổi tất cả các chữ cái đầu tiên của tất cả các từ (tức là theo định nghĩa regex \w+
) thành chữ hoa.
Điều đó có nghĩa là nó không nhất thiết phải chuyển đổi các từ thành Titlecase, nhưng thực hiện chính xác những gì tiêu đề của câu hỏi nói: "Viết hoa chữ cái đầu tiên của mỗi từ trong một chuỗi - JavaScript"
- Không chia chuỗi
- xác định từng từ bằng regex
\w+
tương đương với[A-Za-z0-9_]+
- chỉ áp dụng chức năng
String.prototype.toUpperCase()
cho ký tự đầu tiên của mỗi từ.
function first_char_to_uppercase(argument) {
return argument.replace(/\w+/g, function(word) {
return word.charAt(0).toUpperCase() + word.slice(1);
});
}
Ví dụ:
first_char_to_uppercase("I'm a little tea pot");
first_char_to_uppercase("maRy hAd a lIttLe LaMb");
first_char_to_uppercase(
"ExampleX: CamelCase/UPPERCASE&lowercase,exampleY:N0=apples"
);
first_char_to_uppercase("…n1=orangesFromSPAIN&&n2!='a sub-string inside'");
first_char_to_uppercase("snake_case_example_.Train-case-example…");
first_char_to_uppercase(
"Capitalize First Letter of each word in a String - JavaScript"
);
Chỉnh sửa 2019-02-07: Nếu bạn muốn Chữ tiêu đề thực tế (tức là chỉ viết hoa chữ cái đầu tiên tất cả các chữ thường khác):
function titlecase_all_words(argument) {
return argument.replace(/\w+/g, function(word) {
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
});
}
Ví dụ hiển thị cả hai:
test_phrases = [
"I'm a little tea pot",
"maRy hAd a lIttLe LaMb",
"ExampleX: CamelCase/UPPERCASE&lowercase,exampleY:N0=apples",
"…n1=orangesFromSPAIN&&n2!='a sub-string inside'",
"snake_case_example_.Train-case-example…",
"Capitalize First Letter of each word in a String - JavaScript"
];
for (el in test_phrases) {
let phrase = test_phrases[el];
console.log(
phrase,
"<- input phrase\n",
first_char_to_uppercase(phrase),
"<- first_char_to_uppercase\n",
titlecase_all_words(phrase),
"<- titlecase_all_words\n "
);
}