아래 함수는 모든 단어의 첫 글자를 모두 변환하는 것 외에 문자열의 다른 부분을 변경하지 않습니다 (즉, 정규식 정의에 의해 \w+
)를 대문자 .
즉 , 단어를 반드시 Titlecase로 변환 하는 것은 아니지만 질문의 제목이 "문자열에서 각 단어의 첫 글자를 대문자로-JavaScript"를 정확히 수행합니다.
- 문자열을 분할하지 마십시오
- 다음 과 같은 정규식으로 각 단어 를 결정
\w+
합니다.[A-Za-z0-9_]+
String.prototype.toUpperCase()
각 단어의 첫 번째 문자에만 기능을 적용합니다 .
function first_char_to_uppercase(argument) {
return argument.replace(/\w+/g, function(word) {
return word.charAt(0).toUpperCase() + word.slice(1);
});
}
예 :
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"
);
2019-02-07 편집 : 실제 Titlecase를 원하는 경우 (즉, 첫 글자 만 대문자로, 나머지는 소문자로) :
function titlecase_all_words(argument) {
return argument.replace(/\w+/g, function(word) {
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
});
}
둘 다 보여주는 예 :
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 "
);
}