JavaScript 문자열을 모두 소문자로 변환 하시겠습니까?


1289

JavaScript 문자열 값을 모두 소문자로 변환하려면 어떻게해야합니까?

예 : "이름"에서 "이름"

답변:


1682
var lowerCaseName = "Your Name".toLowerCase();

27
"toLowerCase는 문자열 str 자체의 값에 영향을 미치지 않습니다"도 고려하십시오. 이 문서는 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…에 있습니다.
Cary Bondoc

toLowerCase()기능의 시간과 공간의 복잡성은 무엇입니까?
Ramzan Chasygov

7
@RamzanChasygov 매우 지능적인 바보에 의해 프로그래밍 된 자바 스크립트 엔진이 없다면, O (n)이고 자바 스크립트에서 그것을 재 구현하는 것보다 빠릅니다.
wizzwizz4

1
toLowerCase()변수 를 호출하는보다 안전한 방법 은 (varName || '').toLowerCase();
Dinesh Pandiyan

413

String 객체 의 toLowerCase 또는 toLocaleLowerCase 메서드를 사용하십시오 . 차이점은 사용자 / 호스트의 현재 로캘을 고려 한다는 것입니다. 의 § 15.5.4.17에 따라 인 ECMAScript 언어 사양 (ECMA-262) , ...toLocaleLowerCasetoLocaleLowerCase

… 결과가 로케일 독립적 결과가 아닌 호스트 환경의 현재 로케일에 대한 올바른 결과를 산출한다는 점을 제외하면 toLowerCase와 정확히 동일하게 작동합니다. 해당 언어의 규칙이 일반 유니 코드 사례 매핑과 충돌하는 소수의 사례 (예 : 터키어)에는 차이가 있습니다.

예:

var lower = 'Your Name'.toLowerCase();

또한 toLowerCasetoLocaleLowerCase함수는 모든 값 유형 에서 일반적으로 작동하도록 구현됩니다 . 따라서 String객체 가 아닌 경우에도 이러한 기능을 호출 할 수 있습니다 . 그렇게하면 결과 문자열 값에서 각 문자의 대소 문자를 변경하기 전에 문자열 값으로 자동 변환됩니다. 예를 들어 다음 과 같은 날짜에 직접 신청할있습니다toLowerCase .

var lower = String.prototype.toLowerCase.apply(new Date());

효과적으로 다음과 같습니다.

var lower = new Date().toString().toLowerCase();

두 번째 형태는 일반적으로 단순성과 가독성으로 선호됩니다. 이전 버전의 IE에서는 첫 번째 버전이 null가치를 발휘할 수 있다는 이점이있었습니다 . 적용의 결과 toLowerCasetoLocaleLowerCasenull얻을 것이다 null(그리고 오류 상태).


22
하나는,이 응답을 더 방법을받을 권리가 전혀 아무것도 설명하지 허용 대답보다 최대 투표, 나는 그것을 의미
Frederik.L

String.prototype.toLowerCase.apply(null)반품 에 대한 부분 null이 올바르지 않은 것 같습니다. 그것은 던졌습니다 TypeError내가 그것을하려고 할 때 예외를.
JohnnyHK

2
@JohnnyHK 당신이 맞아요. 이 비트는 이전 버전의 IE에서 true를 유지하는 데 사용되었으며 답변은 원래 게시 당시 테스트되었습니다. 귀하의 의견을 반영하여 답변을 업데이트했습니다. 감사.
Atif Aziz

29

예, JavaScript의 모든 문자열 toLowerCase()에는 소문자로 된 오래된 문자열 인 새 문자열을 반환 하는 메서드가 있습니다. 이전 문자열은 변경되지 않습니다.

따라서 다음과 같은 작업을 수행 할 수 있습니다.

"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();

20

toLocaleUpperCase () 또는 소문자 함수는 제대로 작동하지 않습니다.

예를 들어 내 시스템 인 Safari 4, Chrome 4 Beta, Firefox 3.5.x에서는 터키어 문자가 포함 된 문자열을 잘못 변환합니다.

브라우저는 navigator.language에 각각 "en-US", "tr", "en-US"로 응답합니다.

그러나 내가 찾을 수있는 한 브라우저에서 사용자의 Accept-Lang 설정을 얻는 방법은 없습니다.

모든 브라우저를 tr-TR 로케일을 선호하도록 구성했지만 Chrome에서만 문제가 발생합니다.

이 설정은 HTTP 헤더에만 영향을 미치지 만 JS를 통해 이러한 설정에 액세스 할 수 없습니다.

에서 모질라 문서 는 현재 로케일을 존중하면서 문자열 내의 문자 ...로 변환된다 "말했다.

대부분의 언어의 경우 ... "와 동일하게 반환됩니다.

터키어에 유효하다고 생각하지만 en 또는 tr로 구성된 것과 다르지 않습니다.

터키어에서는 "DİNÇ"을 "dinç"로, "DINÇ"을 "dınç"로 또는 그 반대로 변환해야합니다.


Accept-Language그리고 navigator.language두 개의 완전히 별도의 설정은 다음과 같습니다. Accept-Language웹 페이지에서 원하는 언어에 대한 사용자의 선택 환경 설정을 반영합니다 (이 설정은 불행히도 JS에 액세스 할 수 없음). navigator.language웹 브라우저의 어떤 현지화가 설치되었는지를 나타내며 일반적으로 어떤 용도로도 사용해서는 안됩니다. 이 두 값은 시스템 로케일과 관련이 없으며 toLocaleLowerCase()수행 할 작업 을 결정하는 비트입니다 . 이는 브라우저 환경 설정 범위를 벗어난 OS 수준 설정입니다.
bobince

Accept-Language와 navigator.language는 어떻게 든 관련이 있어야한다고 생각했습니다. 브라우저의 설정 화면을 통해 기본 언어를 순서대로 구성 할 수 있지만 navigator.language가 응답 할 내용을 구성 할 수 없습니다. 로케일 매개 변수를 얻는 toLowerCase () 함수의 또 다른 형태가 있어야한다고 생각합니다.
sanilunlu

그래, 정말 그래 불행히도 JavaScript의 로케일 관련 기능은 약하고 잘못 지정되어 있으며 일반적으로 신뢰할 수 없습니다.
bobince

15

그냥에 대한 예 toLowerCase(), toUpperCase()아직 사용할 수없는 및 프로토 타입 toTitleCase()또는toPropperCase()

String.prototype.toTitleCase = function() {
  return this.split(' ').map(i => i[0].toUpperCase() + i.substring(1).toLowerCase()).join(' ');
}

String.prototype.toPropperCase = function() {
  return this.toTitleCase();
}

var OriginalCase = 'Your Name';
var lowercase = OriginalCase.toLowerCase();
var upperCase = lowercase.toUpperCase();
var titleCase = upperCase.toTitleCase();

console.log('Original: ' + OriginalCase);
console.log('toLowerCase(): ' + lowercase);
console.log('toUpperCase(): ' + upperCase);
console.log('toTitleCase(): ' + titleCase);

2018 수정


1
toPropperCase해야toProperCase
이안

-1이 코드는 ASCII가 아닌 모든 것에서 오류가 발생하기 쉽습니다. 예를 들어 독일어 입력 "die straße"를 사용하면 제목 케이스로 "Die Strasse"가 표시됩니다. "Die Straße"가 맞습니다. 그 외에도 오늘날 시제품 오염이 눈살을 찌푸리고 있습니다.
ComFreek

13

나는 많은 사람들이 있는지 관심을 지불하고 살만한 찾고 위한 strtolower()자바 스크립트입니다. 그들은 다른 언어에서와 동일한 기능 이름을 기대하고 있습니다.이 게시물이 여기에 있습니다.

기본 자바 스크립트 기능을 사용 하는 것이 좋습니다

"SomE StriNg".toLowerCase()

다음은 PHP와 정확히 동일하게 작동하는 함수입니다 (PHP 코드를 js로 이식하는 사용자를 위해)

function strToLower (str) {
    return String(str).toLowerCase();
}

무엇입니까 + ''?
UpTheCreek

8

이 함수는 STRING 객체에서만 작동합니다.

예를 들어, 플러그인을 사용하고 있는데 왜 "extension.tolowercase is a function"JS 오류가 발생했는지 혼동되었습니다.

 onChange: function(file, extension)
    {
      alert("extension.toLowerCase()=>" + extension.toLowerCase() + "<=");

"extension.toLowerCase는 함수가 아닙니다"라는 오류가 발생했습니다. 그래서이 코드를 사용해 보았습니다.

alert("(typeof extension)=>" + (typeof extension) + "<=");;

출력은 "(typeof extension) => object <="-그래서 하하, 입력에 대한 문자열 var를 얻지 못했습니다. 그래도 수정은 간단합니다-그냥 대담한 것을 문자열로 만드십시오! :

var extension = String(extension);

캐스트 후 extension.toLowerCase () 함수가 정상적으로 작동했습니다.


8

메소드 또는 함수 : toLowerCase (), toUpperCase ()

설명 :이 방법은 문자열이나 알파벳을 소문자에서 대문자로 또는 그 반대로 적용하는 데 사용됩니다. 예 : "and"에서 "AND".

대문자로 변환 :-예제 코드 :-

<script language=javascript>
var ss = " testing case conversion method ";
var result = ss.toUpperCase();
document.write(result);
</script>

결과 : 테스트 사례 변환 방법

소문자로 변환 :-예제 코드 :

<script language=javascript>
var ss = " TESTING LOWERCASE CONVERT FUNCTION ";
var result = ss.toLowerCase();
document.write(result);
</script>

결과 : 소문자 변환 기능 테스트

위의 예에서

toUpperCase() method converts any string to "UPPER" case letters.
toLowerCase() method converts any string to "lower" case letters.


2

옵션 1 : toLowerCase () 사용

var x = "ABC";
x=x.toLowerCase();

옵션 2 : 자신의 기능 사용

 function convertToLowerCase(str) {
      var result = ''

      for (var i = 0; i < str.length; i++) {
        var code = str.charCodeAt(i)
        if (code > 64 && code < 91) {
          result += String.fromCharCode(code + 32)
        } else {
          result += str.charAt(i)
        }
      }
      return result
    }

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

x= convertToLowerCase(x);

첫 번째 옵션은 다른 답변에서 이미 언급되었으며 두 번째 옵션은 ASCII가 아닌 모든 항목에 대해 잘못 실패합니다.
ComFreek


-1

직접 빌드하려는 경우 :

function toLowerCase(string) {

let lowerCaseString = "";

for (let i = 0; i < string.length; i++) {
    //find ASCII charcode
    let charcode = string.charCodeAt(i);

    //if uppercase
    if (charcode > 64 && charcode < 97){
        //convert to lowercase
        charcode = charcode + 32
    }

    //back to char
    let lowercase = String.fromCharCode(charcode);

    //append
    lowerCaseString = lowerCaseString.concat(lowercase);
}

return lowerCaseString

}


-2

javascript 문자열에서 내장 .toLowerCase () 메소드를 사용할 수 있습니다. 예 : var x = "Hello"; x.toLowerCase ();


1
이것은 허용 된 답변 빼기 좋은 코드 형식
reggaeguitar

-4

시험

<input type="text" style="text-transform: uppercase">  //uppercase
<input type="text" style="text-transform: lowercase">  //lowercase

데모-JSFiddle


7
훌륭하지만 특히 자바 스크립트는 아닙니다.
설명이 아닌 사용자

@ some-de-descript-user가 말한 것을 토대로 OP는 JavaScript 솔루션을 찾고 있습니다. 이 답변은 유효하지만 정의 된 매개 변수에 따라 OP의 질문에 답변하지 않습니다.
boxspah

니스 ... 나는 CSS 방법을 찾고
있었고이
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.