capitalize 자바스크립트 substring - JavaScript에서 문자열의 첫 문자를 대문자로 만들려면 어떻게합니까?





15 Answers

보다 객체 지향적 인 접근 :

String.prototype.capitalize = function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
}

그리고:

"hello world".capitalize();  =>  "Hello world" 
글자 소문자 js

어떻게 문자열의 첫 글자를 대문자로 만들지 만 다른 글자의 대문자는 바꾸지 않습니까?

예 :

  • "this is a test" -> "This is a test"
  • "the Eiffel Tower" -> "The Eiffel Tower"
  • "/index.html" -> "/index.html"



다음은 문자열을 배열로 처리하여 첫 번째 문자를 얻는 일반적인 대답의 단축 버전입니다.

function capitalize(s)
{
    return s[0].toUpperCase() + s.slice(1);
}

최신 정보:

아래 코멘트에 따르면 IE 7 이하에서는 작동하지 않습니다.

업데이트 2 :

빈 문자열에 대해 undefined 않도록하려면 (아래 @njzk2 주석 참조 ) 빈 문자열을 확인할 수 있습니다.

function capitalize(s)
{
    return s && s[0].toUpperCase() + s.slice(1);
}



다른 경우에는 첫 글자를 대문자로 바꾸고 나머지는 소문자로 사용해야합니다. 다음과 같은 경우에이 기능을 변경할 수 있습니다.

//es5
function capitalize(string) {
    return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
}
capitalize("alfredo")  // => "Alfredo"
capitalize("Alejandro")// => "Alejandro
capitalize("ALBERTO")  // => "Alberto"
capitalize("ArMaNdO")  // => "Armando"

// es6 using destructuring 
const capitalize = ([first,...rest]) => first.toUpperCase() + rest.join('').toLowerCase();



var string = "hello world";
string = string.charAt(0).toUpperCase() + string.slice(1);
alert(string);



이것이 2018 ES6 + 솔루션입니다 .

const str = 'the Eiffel Tower';
const newStr = `${str[0].toUpperCase()}${str.slice(1)}`;
console.log('Original String:', str); // the Eiffel Tower
console.log('New String:', newStr); // The Eiffel Tower




가장 좋아하는 RegExp 중 하나를 사용하여 첫 번째 캐릭터를 얻을 수 있습니다. 귀여운 스마일처럼 보입니다. /^./

String.prototype.capitalize = function () {
  return this.replace(/^./, function (match) {
    return match.toUpperCase();
  });
};

그리고 모든 커피 마약 중독자를 위해 :

String::capitalize = ->
  @replace /^./, (match) ->
    match.toUpperCase()

... 원시 프로토 타입을 확장하지 않고도이를 수행하는 더 좋은 방법이 있다고 생각하는 모든 사람들을 위해 :

var capitalize = function (input) {
  return input.replace(/^./, function (match) {
    return match.toUpperCase();
  });
};



underscore.js 또는 Lo-Dash 를 사용하는 경우 underscore.string 라이브러리는 capitalize를 비롯한 문자열 확장을 제공합니다.

_.capitalize (string) 문자열의 첫 번째 문자를 대문자로 변환합니다.

예:

_.capitalize("foo bar") == "Foo bar"



그것은 CSS에서 쉬워 보인다 :

<style type="text/css">
    p.capitalize {text-transform:capitalize;}
</style>
<p class="capitalize">This is some text.</p>

이것은 CSS text-transform 속성 ( W3Schools )에서 가져온 것입니다.




대문자로 된 텍스트를 다시 포맷하려면 다른 예제를 다음과 같이 수정해야합니다.

function capitalize (text) {
    return text.charAt(0).toUpperCase() + text.slice(1).toLowerCase();
}

이렇게하면 다음 텍스트가 변경됩니다.

TEST => Test
This Is A TeST => This is a test



String.prototype.capitalize = function(){
    return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase();
    } );
};

용법:

capitalizedString = someString.capitalize();

이것은 텍스트 문자열 => 이것은 텍스트 문자열입니다.




다음은 ucfirst () ( "대문자 첫 글자"의 약자 ) 라는 함수입니다.

function ucfirst(str) {
    var firstLetter = str.substr(0, 1);
    return firstLetter.toUpperCase() + str.substr(1);
}

ucfirst ( "some string") 를 호출하여 문자열을 대문자로 변환 할 수 있습니다 ( 예 :

ucfirst("this is a test") --> "This is a test"

문자열을 두 조각으로 나눔으로써 작동합니다. 첫 번째 줄에서는 firstLetter를 꺼내고 두 번째 줄에서는 firstLetter.toUpperCase () 를 호출 하여 firstLetter 를 대문자 만들고 str.substr (1) 을 호출하여 찾은 나머지 문자열과 조인합니다.

빈 문자열에 대해 이것이 실패 할 것이라고 생각할 수도 있습니다. 실제로 C와 같은 언어로 이것을 처리해야합니다. 그러나 JavaScript에서는 빈 문자열의 하위 문자열을 가져올 때 빈 문자열 만 반환합니다.




yourString.replace(/^[a-z]/, function(m){ return m.toUpperCase() });

(함수에 캡슐화하거나 자주 사용하는 경우 String 프로토 타입에 추가 할 수도 있습니다.)




CSS를 사용하여 무언가를 해결할 수 있다면 먼저 CSS를 사용하여 이러한 종류의 물건을 다루는 것이 더 좋습니다. 먼저 문제를 해결하기 위해 JavaScript를 시도해보십시오.이 경우에는 CSS의 :first-letter 를 사용하고 적용하십시오. text-transform:capitalize;

그래서 그것을 위해 클래스를 생성 해보십시오. 예를 들어, .first-letter-uppercase.first-letter-uppercase 전역 적으로 사용할 수 있습니다. CSS에 다음과 같이 추가하십시오.

.first-letter-uppercase:first-letter {
    text-transform:capitalize;
}

또한 대체 옵션은 JavaScript이므로 최선의 방법은 다음과 같습니다.

function capitalizeTxt(txt) {
  return txt.charAt(0).toUpperCase() + txt.slice(1); //or if you want lowercase the rest txt.slice(1).toLowerCase();
}

그것을 다음과 같이 호출하십시오.

capitalizeTxt('this is a test'); // return 'This is a test'
capitalizeTxt('the Eiffel Tower'); // return 'The Eiffel Tower'
capitalizeTxt('/index.html');  // return '/index.html'

반복해서 재사용하고 싶다면 자바 스크립트 원시 문자열에 연결하는 것이 좋습니다. 다음과 같이합니다.

String.prototype.capitalizeTxt = String.prototype.capitalizeTxt || function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
}

그것을 아래와 같이 부르십시오.

'this is a test'.capitalizeTxt(); // return 'This is a test'
'the Eiffel Tower'.capitalizeTxt(); // return 'The Eiffel Tower'
'/index.html'.capitalizeTxt();  // return '/index.html'



yourString.replace(/\w/, c => c.toUpperCase())

이 화살표 기능이 가장 쉽다는 것을 알게되었습니다. Replace\w문자열 의 첫 번째 문자 인 character ( )와 대문자로 변환합니다. 아무것도 좋아하지 않아.







Related