[javascript] 변수의 첫 글자 대문자

나는 웹을 통해 검색했지만 나를 도울 수있는 것이 없다. 변수 내에서 각 단어의 첫 글자를 대문자로 만들고 싶습니다.

지금까지 시도했습니다.

toUpperCase();

그리고 모든 문자를 대문자로 표시하므로 운이 없었습니다.



답변

단어를 시작하는 소문자를 대문자로 바꾸 려면 .replace[MDN] 기능을 사용하십시오 .

var str = "hello world";
str = str.toLowerCase().replace(/\b[a-z]/g, function(letter) {
    return letter.toUpperCase();
});
alert(str); //Displays "Hello World"


편집 : az 이외의 단어 문자를 다루는 경우 다음 (더 복잡한) 정규식이 용도에 더 적합 할 수 있습니다.

var str = "петр данилович björn über ñaque αλφα";
str = str.toLowerCase().replace(/^[\u00C0-\u1FFF\u2C00-\uD7FF\w]|\s[\u00C0-\u1FFF\u2C00-\uD7FF\w]/g, function(letter) {
    return letter.toUpperCase();
});
alert(str); //Displays "Петр Данилович Björn Über Ñaque Αλφα"


답변

훨씬 쉬운 방법 :

$('#test').css('textTransform', 'capitalize');

@Dementic이 나를 올바른 길로 인도 한 것에 대해 공로를 인정해야합니다. 여러분이 제안하는 것보다 훨씬 간단합니다.


답변

http://phpjs.org/functions/ucwords:569 에 좋은 예가 있습니다.

function ucwords (str) {
    return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) {
        return $1.toUpperCase();
    });
}

(간결성을 위해 소스에서 함수 설명을 생략했습니다. 자세한 내용은 링크 된 소스를 참조하십시오)

편집 :이 기능은 (질문 제목이 묻는 것처럼) 문자열의 첫 글자가 아니라 (질문이 묻는대로) 각 단어의 첫 글자를 대문자로 표시합니다.


답변

순수한 자바 스크립트 솔루션을 추가하고 싶었습니다 (JQuery 없음)

function capitalize(str) {
  strVal = '';
  str = str.split(' ');
  for (var chr = 0; chr < str.length; chr++) {
    strVal += str[chr].substring(0, 1).toUpperCase() + str[chr].substring(1, str[chr].length) + ' '
  }
  return strVal
}

console.log(capitalize('hello world'));


답변

substring () 및 toUpperCase ()를 사용하여 첫 번째 문자를 꺼내고 대문자로 만든 다음 문자열의 첫 번째 문자를 결과로 바꿀 수 있다고 생각합니다.

myString = "cheeseburger";
firstChar = myString.substring( 0, 1 ); // == "c"
firstChar.toUpperCase();
tail = myString.substring( 1 ); // == "heeseburger"
myString = firstChar + tail; // myString == "Cheeseburger"

나는 그것이 당신에게 효과가 있다고 생각합니다. 고려해야 할 또 다른 사항은이 데이터가 표시되는 경우 CSS 속성 “text-transform : capitalize”가있는 컨테이너에 클래스를 추가 할 수 있다는 것입니다.


답변

이렇게하려면 사용하려는 경우 Javascript가 실제로 필요하지 않습니다.

$('#test').css('textTransform', 'capitalize');

CSS처럼 이것을하지 않는 이유

#test,h1,h2,h3 { text-transform: capitalize; }

또는 수업으로 수행하고 필요한 곳에 해당 수업을 적용하십시오.

.ucwords { text-transform: capitalize; }


답변

들어 본 적이 substr()있습니까?

우선 :

$("#test").text($("#test").text().substr(0,1).toUpperCase()+$("#test").text().substr(1,$("#test").text().length));

[최신 정보:]

팁에 대한 @FelixKling 에게 감사드립니다 .

$("#test").text(function(i, text) {
    return text.substr(0,1).toUpperCase() + text.substr(1);
});