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

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

예 : “이름”에서 “이름”



답변

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


답변

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(그리고 오류 상태).


답변

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

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

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


답변

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ç”로 또는 그 반대로 변환해야합니다.


답변

그냥에 대한 예 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 수정


답변

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

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

"SomE StriNg".toLowerCase()

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

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


답변

이 함수는 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 () 함수가 정상적으로 작동했습니다.