Konversi JavaScript String menjadi huruf kecil semua?

1290

Bagaimana saya bisa mengubah nilai string JavaScript menjadi semua huruf kecil?

Contoh: "Nama Anda" ke "nama Anda"

Derek
sumber

Jawaban:

1682
var lowerCaseName = "Your Name".toLowerCase();
John Topley
sumber
27
Pertimbangkan ini juga, "toLowerCase tidak memengaruhi nilai string str itu sendiri". Ini didasarkan pada dokumentasi di sini developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
Cary Bondoc
apa kompleksitas waktu dan ruang toLowerCase()fungsi?
Ramzan Chasygov
7
@RamzanChasygov Ini adalah O (n) dan lebih cepat daripada mengimplementasikannya kembali dalam JavaScript, kecuali jika Anda memiliki mesin JavaScript yang diprogram oleh para idiot yang sangat cerdas.
wizzwizz4
1
Cara yang lebih aman untuk menggunakan toLowerCase()variabel adalah (varName || '').toLowerCase();
Dinesh Pandiyan
413

Gunakan baik toLowerCase atau toLocaleLowerCase metode dari String objek. Perbedaannya adalah bahwa toLocaleLowerCaseakan mengambil lokal saat ini dari pengguna / host ke akun. Sesuai § 15.5.4.17 dari Spesifikasi Bahasa Naskah ECMAS (ECMA-262) , toLocaleLowerCase

... bekerja persis sama dengan toLowerCase kecuali bahwa hasilnya dimaksudkan untuk menghasilkan hasil yang benar untuk lokal saat ini lingkungan host, daripada hasil independen-lokal. Hanya akan ada perbedaan dalam beberapa kasus (seperti Turki) di mana aturan untuk konflik bahasa dengan pemetaan kasus Unicode biasa.

Contoh:

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

Perhatikan juga bahwa toLowerCasedan toLocaleLowerCasefungsi diimplementasikan untuk bekerja secara umum pada semua jenis nilai. Oleh karena itu Anda dapat menjalankan fungsi-fungsi ini bahkan pada non- Stringobjek. Melakukan hal itu akan menyiratkan konversi otomatis ke nilai string sebelum mengubah huruf setiap karakter dalam nilai string yang dihasilkan. Misalnya, Anda dapat mendaftar toLowerCase langsung pada tanggal seperti ini:

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

dan yang secara efektif setara dengan:

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

Bentuk kedua umumnya disukai karena kesederhanaan dan keterbacaannya. Pada versi IE yang lebih lama, yang pertama memiliki manfaat bahwa ia dapat bekerja dengan suatu nullnilai. Hasil penerapan toLowerCaseatau toLocaleLowerCaseaktif nullakan menghasilkan null(dan bukan kondisi kesalahan).

Atif Aziz
sumber
22
+1, jawaban ini layak mendapat lebih banyak suara daripada jawaban yang diterima yang tidak menjelaskan apa-apa, maksud saya
Frederik.L
Bagian tentang String.prototype.toLowerCase.apply(null)kembali nulltampaknya tidak benar. Itu melempar TypeErrorpengecualian ketika saya mencobanya.
JohnnyHK
2
@ JohnnyHK Anda benar. Bit itu dulu berlaku pada versi IE yang lebih lama di mana ia diuji pada saat jawaban awalnya diposting. Saya telah memperbarui jawaban untuk mencerminkan tanggapan Anda. Terima kasih.
Atif Aziz
29

Ya, string apa pun dalam JavaScript memiliki toLowerCase()metode yang akan mengembalikan string baru yang merupakan string lama dalam semua huruf kecil. String lama akan tetap tidak berubah.

Jadi, Anda dapat melakukan sesuatu seperti:

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

toLocaleUpperCase () atau fungsi huruf kecil tidak berperilaku seperti seharusnya.

Misalnya di sistem saya, Safari 4, Chrome 4 Beta, Firefox 3.5.x itu salah mengubah string dengan karakter Turki.

Peramban merespons navigator.language masing-masing sebagai "en-US", "tr", "en-US".

Tapi tidak ada cara untuk mendapatkan pengaturan Terima-Lang pengguna di browser sejauh yang saya bisa temukan.

Hanya Chrome yang memberi saya masalah walaupun saya telah mengonfigurasikan setiap browser sebagai tr-TR locale yang disukai.

Saya pikir pengaturan ini hanya memengaruhi tajuk HTTP, tetapi kami tidak dapat mengakses pengaturan ini melalui JS.

Dalam dokumentasi Mozilla dikatakan "Karakter dalam string dikonversi ke ... sambil menghormati lokal saat ini.

Untuk sebagian besar bahasa, ini akan menghasilkan yang sama dengan ... ".

Saya pikir ini berlaku untuk Turki, tidak berbeda itu dikonfigurasi sebagai en atau tr.

Di Turki itu harus mengkonversi "DİNÇ" ke "dinç" dan "DINÇ" menjadi "dınç" atau sebaliknya.

sanilunlu
sumber
Accept-Languagedan navigator.languagedua pengaturan yang sepenuhnya terpisah. Accept-Languagemencerminkan preferensi yang dipilih pengguna untuk bahasa apa yang ingin mereka terima di halaman web (dan pengaturan ini sayangnya tidak dapat diakses oleh JS). navigator.languagehanya mencerminkan lokalisasi browser web mana yang diinstal, dan seharusnya tidak digunakan untuk apa pun. Kedua nilai ini tidak terkait dengan sistem lokal, yang merupakan bit yang memutuskan apa yang toLocaleLowerCase()akan dilakukan; itu adalah pengaturan tingkat OS di luar ruang lingkup peramban peramban.
bobince
Saya pikir Bahasa Terima dan navigator. Bahasa entah bagaimana harus terkait. Anda dapat mengonfigurasi bahasa default secara berurutan melalui layar pengaturan browser, tetapi Anda tidak dapat mengonfigurasi apa yang harus direspons oleh bahasa navigator. Saya pikir harus ada bentuk lain dari fungsi toLowerCase () yang mendapatkan parameter lokal.
sanilunlu
Ya, harus ada. Sayangnya fitur yang terkait dengan lokal di JavaScript lemah, tidak ditentukan dengan baik, dan umumnya tidak dapat diandalkan.
bobince
15

Hanya contoh untuk toLowerCase(), toUpperCase()dan prototipe untuk belum tersedia toTitleCase()atautoPropperCase()

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

diedit 2018

ewwink
sumber
1
toPropperCaseseharusnyatoProperCase
Ian
-1 kode ini sangat rentan terhadap kesalahan dengan semua yang bukan ASCII. Misalnya, dengan input bahasa Jerman "die straße", Anda akan mendapatkan "Die Strasse" sebagai case title. Yang benar adalah "Die Straße". Terlepas dari itu, polusi prototipe saat ini disukai.
ComFreek
13

Aku diperhatikan perhatian bahwa banyak orang yang mencari untuk strtolower()dalam JavaScript. Mereka mengharapkan nama fungsi yang sama seperti dalam bahasa lain, itu sebabnya posting ini ada di sini.

Saya akan merekomendasikan menggunakan fungsi Javascript asli

"SomE StriNg".toLowerCase()

Inilah fungsi yang berperilaku persis sama dengan PHP (bagi mereka yang porting kode PHP ke js)

function strToLower (str) {
    return String(str).toLowerCase();
}
Dan
sumber
Untuk apa + ''?
UpTheCreek
8

Perhatikan bahwa fungsi HANYA akan bekerja pada objek STRING.

Misalnya, saya menggunakan plugin, dan bingung mengapa saya mendapatkan error JS "extension.tolowercase bukan fungsi".

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

Yang menghasilkan kesalahan "extension.toLowerCase bukan fungsi" Jadi saya mencoba potongan kode ini, yang mengungkapkan masalahnya!

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

Outputnya adalah "(typeof extension) => object <=" - jadi AhHa, saya TIDAK mendapatkan string var untuk input saya. Cara mengatasinya lurus ke depan - paksa saja benda sialan itu ke dalam String !:

var extension = String(extension);

Setelah para pemain, fungsi extension.toLowerCase () bekerja dengan baik.

Paul Gorbas
sumber
8

Metode atau Fungsi: toLowerCase (), toUpperCase ()

Deskripsi: Metode ini digunakan untuk menutupi string atau alfabet dari huruf kecil ke huruf besar atau sebaliknya. mis: "dan" ke "DAN".

Mengubah ke Huruf Besar: - Kode Contoh: -

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

Hasil: METODE KONVERSI KASUS PENGUJIAN

Mengubah ke Huruf Kecil: - Kode Contoh:

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

Hasil: menguji fungsi konversi huruf kecil

Penjelasan: Dalam contoh di atas,

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

Cukup gunakan JS toLowerCase()
let v = "Your Name" let u = v.toLowerCase();atau
let u = "Your Name".toLowerCase();

Harunur Rashid
sumber
2

Memilih 1: menggunakan toLowerCase ();

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

Memilih 2: Menggunakan fungsi Anda sendiri

 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
    }

Sebut saja sebagai:

x= convertToLowerCase(x);
Siddhartha
sumber
Opsi pertama telah disebutkan dalam jawaban lain, opsi kedua gagal buruk untuk semua yang bukan ASCII.
ComFreek
-1

Baki dengan cara singkat ini

  document.write((a+"").toUpperCase());
Abdurahman Popal
sumber
-1

Jika Anda ingin membuatnya sendiri:

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

}

Javier Giovannini
sumber
-2

Anda dapat menggunakan metode .toLowerCase () bawaan pada string javascript. ex: var x = "Hello"; x.toLowerCase ();

Praveen
sumber
1
Ini identik dengan jawaban yang diterima dikurangi pemformatan kode yang baik
reggaeguitar
-4

Mencoba

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

Demo - JSFiddle

Beberapa orang Jawa
sumber
7
Bagus, tapi tidak terutama javascript, bukan?
beberapa-non-descript-user
Berdasarkan apa yang dikatakan @ some-non-descript-user, OP sedang mencari solusi JavaScript. Meskipun jawaban ini valid, ia tidak menjawab pertanyaan OP sesuai dengan parameter yang ditentukan.
boxspah
Bagus ... Saya sedang mencari metode CSS dan datang ke halaman ini
Abhishek Nalin