JavaScript String'i küçük harfe dönüştürmek ister misiniz?


1289

Bir JavaScript dize değerini tüm küçük harflerle nasıl dönüştürebilirim?

Örnek: "Adınız" ile "adınız"

Yanıtlar:


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

27
Bunu da düşünün, "toLowerCase str dizesinin kendisinin değerini etkilemez". Bu, burada bulunan bir belgeye
dayanmaktadır

toLowerCase()fonksiyonun zaman ve mekan karmaşıklığı nedir?
Ramzan Chasygov

7
@RamzanChasygov Çok akıllı aptallar tarafından programlanmış bir JavaScript motorunuz yoksa, hem O (n) hem de JavaScript'e yeniden uygulamaktan daha hızlıdır.
wizzwizz4

1
toLowerCase()Değişkenleri çağırmanın daha güvenli bir yolu (varName || '').toLowerCase();
Dinesh Pandiyan

413

String nesnesinin toLowerCase veya toLocaleLowerCase yöntemlerini kullanın . Fark, kullanıcının / ana bilgisayarın geçerli yerel ayarını dikkate almasıdır. ECMAScript Dil Spesifikasyonu'nun (ECMA-262) § 15.5.4.17 uyarınca , …toLocaleLowerCasetoLocaleLowerCase

… Sonucun, yerel ayardan bağımsız bir sonuç yerine ana bilgisayar ortamının geçerli yerel ayarı için doğru sonucu vermesi dışında toLowerCase ile tam olarak aynı şekilde çalışır. Bu dilin kurallarının normal Unicode vaka eşlemeleriyle çakıştığı birkaç durumda (Türkçe gibi) sadece bir fark olacaktır.

Misal:

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

Ayrıca toLowerCaseve toLocaleLowerCaseişlevlerinin herhangi bir değer türünde genel olarak çalışacak şekilde uygulandığını unutmayın . Bu nedenle, bu işlevleri Stringnesne olmayan nesnelerde bile çağırabilirsiniz . Bunu yapmak, sonuçta elde edilen dize değerindeki her karakterin büyük / küçük harflerini değiştirmeden önce bir dize değerine otomatik dönüşüm anlamına gelir. Örneğin, doğrudan aşağıdaki gibi bir tarihe başvurabilirsiniz toLowerCase :

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

ve etkili bir şekilde eşdeğerdir:

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

İkinci form genellikle sadeliği ve okunabilirliği nedeniyle tercih edilir. IE'nin önceki sürümlerinde, birincisi bir nulldeğerle çalışabilme avantajına sahipti . Uygulamanın toLowerCaseveya uygulanmasının sonucu, bir hata koşulu değil toLocaleLowerCase, nullsonuç verir null.


22
+1, bu cevap, hiçbir şeyi açıklayan kabul edilen cevaptan daha fazla oyu hak ediyor, demek istediğim
Frederik.L

Hakkında parçası String.prototype.toLowerCase.apply(null)dönen nulldoğru gibi görünmüyor. TypeErrorDenediğimde bir istisna atıyor .
JohnnyHK

2
@JohnnyHK Haklısın. Bu bit, cevabın ilk olarak gönderildiği sırada test edildiği IE'nin önceki sürümlerinde geçerliydi. Cevabınızı geri bildiriminizi yansıtacak şekilde güncelledik. Teşekkürler.
Atif Aziz

29

Evet, JavaScript'teki herhangi bir dize toLowerCase(), eski harf olan yeni bir dize döndürecek bir yönteme sahiptir . Eski dize değişmeden kalacaktır.

Yani, şöyle bir şey yapabilirsiniz:

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

20

toLocaleUpperCase () veya küçük harf işlevleri olması gerektiği gibi davranmaz.

Örneğin, sistemimde Safari 4, Chrome 4 Beta, Firefox 3.5.x, Türkçe karakterli dizeleri yanlış dönüştürüyor.

Tarayıcılar navigator.language öğesine sırasıyla "en-US", "tr", "en-US" şeklinde yanıt verir.

Ancak, kullanıcının Accept-Lang ayarını tarayıcıda bulabildiğim kadar almanın bir yolu yok.

Her tarayıcıyı tr-TR yerel ayarı olarak tercih ettiğim halde yalnızca Chrome bana sorun çıkarıyor.

Bu ayarların yalnızca HTTP üstbilgisini etkilediğini düşünüyorum, ancak bu ayarlara JS üzerinden erişemiyoruz.

In Mozilla belgelerinde mevcut yerel saygı bir dize içinde karakterler ... dönüştürülür" diyor.

Çoğu dil için bu ... "ile aynı döndürülür.

Türkçe için geçerli olduğunu düşünüyorum, en ya da tr olarak yapılandırıldığından farklı değil.

Türkçe'de "DİNÇ" i "dinç" e, "DINÇ" i "dınç" a veya tam tersine çevirmelidir.


Accept-Languageve navigator.languagetamamen ayrı iki ayardır. Accept-Languagekullanıcının web sayfalarında hangi dilleri almak istediğine ilişkin seçtiği tercihleri ​​yansıtır (ve bu ayara JS'ye talihsiz bir şekilde erişilemez). navigator.languageyalnızca web tarayıcısının hangi yerelleştirmenin kurulduğunu gösterir ve genellikle hiçbir şey için kullanılmamalıdır. Bu değerlerin her ikisi de, ne toLocaleLowerCase()yapacağına karar veren bit olan sistem yerel ayarıyla ilgisizdir ; bu, tarayıcının tercihlerinin kapsamı dışında işletim sistemi düzeyinde bir ayardır.
bobince

Accept-Language ve navigator.language'ın bir şekilde ilişkili olması gerektiğini düşündüm. Varsayılan dili, tarayıcı ayarları ekranlarından sırayla yapılandırabilirsiniz, ancak hangi navigator.language öğesinin yanıt vereceğini yapılandıramazsınız. Bir yerel ayar parametresi alır işlev ToLowerCase () başka bir form olması gerektiğini düşünüyorum.
sanilunlu

Evet, gerçekten olmalı. Ne yazık ki JavaScript'teki yerel ayarlarla ilgili özellikler zayıf, kötü belirtilmiş ve genellikle güvenilir değil.
bobince

15

Sadece bir için örnekler toLowerCase(), toUpperCase()henüz mevcut değil ve prototip toTitleCase()veyatoPropperCase()

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);

düzenlendi 2018


1
toPropperCaseolmalıtoProperCase
Ian

-1 bu kod ASCII olmayan her şeyde hatalara çok eğilimlidir. Örneğin, Almanca "die straße" girişi ile, "Die Strasse" ünvanını alacaksınız. Doğru "Die Straße" olurdu. Bunun dışında, günümüzde prototip kirliliği kaşlarını çatıyor.
ComFreek

13

Ben bir sürü insan olduğunu ödenir dikkat seyir için strtolower()JavaScript. Diğer dillerde olduğu gibi aynı işlev adını bekliyorlar, bu yüzden bu yazı burada.

Yerel Javascript işlevini kullanmanızı tavsiye ederim

"SomE StriNg".toLowerCase()

İşte PHP'ninkiyle tam olarak aynı işlev gören işlev (PHP kodunu js'ye taşıyanlar için)

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

Ne + ''için?
UpTheCreek

8

Fonksiyonun SADECE STRING nesnelerinde çalışacağını unutmayın.

Örneğin, bir eklenti tüketiyordum ve neden "extension.tolowercase bir işlev değil" JS hatası alıyorum karıştı.

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

Hangi "extension.toLowerCase bir işlev değil" hatası üretti Bu yüzden sorunu ortaya koyan bu kod parçasını denedim!

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

Çıktı "(typeof extension) => nesne <=" - yani AhHa, girişim için bir dize var almıyordum. Düzeltme düz ileri olsa da - sadece lanet şeyi bir String içine zorla !:

var extension = String(extension);

Oyunculardan sonra, extension.toLowerCase () işlevi iyi çalıştı.


8

Yöntem veya İşlev: toLowerCase (), toUpperCase ()

Açıklama: Bu yöntemler, bir dizeyi veya alfabeyi küçük harften büyük harfe ya da tam tersini örtmek için kullanılır. örneğin: "ve" ila "AND".

Büyük Harfe Dönüştürme: - Örnek Kod: -

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

Sonuç: TEST DURUMU DÖNÜŞÜM YÖNTEMİ

Küçük Harfe Dönüştürme: - Örnek Kod:

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

Sonuç: küçük harf dönüştürme işlevini test etme

Açıklama: Yukarıdaki örneklerde,

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

3

JS toLowerCase()
let v = "Your Name" let u = v.toLowerCase();veya
let u = "Your Name".toLowerCase();


2

Seçenek 1: toLowerCase () kullanımı;

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

Seçenek 2: Kendi işlevinizi kullanma

 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
    }

Şöyle adlandırın:

x= convertToLowerCase(x);

İlk seçenek diğer cevaplarda zaten belirtilmiştir, ikinci seçenek ASCII olmayan her şey için kötü başarısız olur.
ComFreek


-1

Kendiniz inşa etmek istiyorsanız:

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 dizelerinde in built .toLowerCase () yöntemini kullanabilirsiniz. örnek: var x = "Merhaba"; x.toLowerCase ();


1
Bu, kabul edilen cevap eksi iyi kod biçimlendirme ile aynıdır
reggaeguitar

-4

Deneyin

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

Demo - JSFiddle


7
Güzel, ama özellikle javascript değil mi?
bazı-descriptsiz kullanıcı

@ Some-descript olmayan kullanıcının söylediklerine dayanarak, OP bir JavaScript çözümü arıyor. Bu cevap geçerli olmasına rağmen, OP'nin sorusuna tanımlanan parametrelere göre cevap vermez.
boxspah

Güzel ... Bir CSS yöntemi arıyordum ve bu sayfaya geldim
Abhishek Nalin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.