Saya melihat-lihat dokumen lodash dan pertanyaan Stack Overflow lainnya - sementara ada beberapa cara JavaScript asli untuk menyelesaikan tugas ini , adakah cara saya dapat mengonversi string menjadi kasus judul menggunakan fungsi lodash murni (atau setidaknya fungsi prototipe yang ada) sehingga saya tidak perlu menggunakan ekspresi reguler atau mendefinisikan fungsi baru?
misalnya
This string ShouLD be ALL in title CASe
harus menjadi
This String Should Be All In Title Case
javascript
lodash
brandonscript
sumber
sumber
Jawaban:
Ini dapat dilakukan dengan sedikit modifikasi
startCase
:Tampilkan cuplikan kode
sumber
_.startCase("aaa BBB ccc") === "Aaa BBB Ccc"
startCase
.:
, itu adalah masalah.Untuk teks yang tidak dibuat oleh pengguna, ini menangani lebih banyak kasus daripada jawaban yang diterima
sumber
dengan lodash versi 4.
_.upperFirst(_.toLower(str))
sumber
startCase
karena dapat menangani lebih banyak huruf daripada az, misalnya å, ä dan ö.sumber
upperFirst
sebagai ganticapitalize
._.startCase
menghapus tanda baca. Contoh_.startCase('first second etc...
mengembalikan stringFirst Second Etc
startCase
mualaf segalanya untuk kosong misalnyauser_name
akanUser Name
, dan saya hanya inginUser_name
sepertitext-transform: capitalize
milik CSSAda beragam jawaban untuk pertanyaan ini. Beberapa merekomendasikan penggunaan
_.upperFirst
sementara beberapa merekomendasikan_.startCase
.Ketahui perbedaan di antara mereka.
i)
_.upperFirst
akan mengubah huruf pertama dari string Anda, kemudian string mungkin dari satu kata atau beberapa kata tetapi satu-satunya huruf pertama dari string Anda diubah menjadi huruf besar._.upperFirst('jon doe')
keluaran:
Jon doe
periksa dokumentasi https://lodash.com/docs/4.17.10#upperFirst
ii)
_.startCase
akan mengubah huruf pertama dari setiap kata di dalam string Anda._.startCase('jon doe')
keluaran:
Jon Doe
https://lodash.com/docs/4.17.10#startCase
sumber
_.lower()
.Berikut adalah cara menggunakan HANYA metode lodash dan tanpa metode bawaan:
sumber
Anda juga dapat membagi fungsi peta untuk membuat kata-kata terpisah
sumber
Kecuali saya melewatkannya, lodash tidak memiliki metode huruf kecil / besar sendiri.
sumber
_.upperFirst
hanya berlaku untuk karakter pertama (sinonim untuk_.capitalize()
?)capitalize
danupperFirst
melakukan berbagai hal.Tidak sesingkat jawaban @ 4castle, tetapi deskriptif dan lengkap, namun ...
sumber
Berikut solusi lain untuk kasus penggunaan saya: "tulang punggung setan"
Secara sederhana:
Menggunakan startCase akan menghapus apostrof, jadi saya harus mengatasi batasan itu. Solusi lain sepertinya cukup berbelit-belit. Saya suka ini karena bersih, mudah dimengerti.
sumber
Ini bisa dilakukan hanya dengan lodash
sumber
var words = ._words
Kode di bawah ini akan bekerja dengan sempurna:
sumber
dengan lodash 4, Anda dapat menggunakan _.capitalize ()
_.capitalize('JOHN')
Ini mengembalikan 'John'Lihat https://lodash.com/docs/4.17.5#capitalize untuk detailnya
sumber