Saya sudah mencoba untuk mendapatkan perintah regex JavaScript untuk mengubah sesuatu "thisString"
menjadi "This String"
tetapi yang paling dekat saya adalah mengganti surat, menghasilkan sesuatu seperti "Thi String"
atau "This tring"
. Ada ide?
Untuk memperjelas saya bisa menangani kesederhanaan memanfaatkan surat, aku hanya tidak sekuat dengan regex, dan membelah "somethingLikeThis"
ke "something Like This"
mana aku mengalami kesulitan.
javascript
regex
Seorang Penyihir Melakukannya
sumber
sumber
Jawaban:
menampilkan
Tampilkan cuplikan kode
sumber
str.replace(/((?<!^)[A-Z](?![A-Z]))(?=\S)/g, ' $1').replace(/^./, s => s.toUpperCase() );
Ini akan dikonversiuserID
keUser ID
, dan bahkan akan dikonversiuserIDField
keUser ID Field
Saya memiliki minat kosong dalam hal ini, khususnya dalam menangani urutan modal, seperti di xmlHTTPRequest. Fungsi-fungsi yang terdaftar akan menghasilkan "Permintaan HTTP Xml" atau "Permintaan HTT Xml", milik saya menghasilkan "Permintaan HTTP Xml".
Ada juga versi String.prototype di inti .
sumber
str.replace(/((?<!^)[A-Z](?![A-Z]))(?=\S)/g, ' $1').replace(/^./, s => s.toUpperCase() )
Ini dapat dilakukan secara ringkas dengan regex lookahead ( live demo ):
(Saya pikir
g
bendera (global) itu perlu, tetapi anehnya, tidak ada dalam kasus khusus ini.)Menggunakan lookahead with
split
memastikan bahwa huruf kapital yang cocok tidak dikonsumsi dan menghindari berurusan dengan ruang terkemuka jika UpperCamelCase adalah sesuatu yang perlu Anda tangani. Untuk mengubah huruf besar dari huruf pertama, Anda dapat menggunakan:The
map
Metode array fitur ES5, tapi Anda masih dapat menggunakannya di browser lama dengan beberapa kode dari MDC . Atau, Anda dapat beralih di atas elemen array menggunakanfor
loop.sumber
Saya pikir ini harus dapat menangani karakter huruf besar berturut-turut serta camelCase sederhana.
Misalnya: someVariable => someVariable, tetapi ABCCode! = Kode ABC.
Regex di bawah ini berfungsi pada contoh Anda tetapi juga contoh umum mewakili singkatan di camcelCase.
Anda juga dapat menyesuaikan seperti di atas untuk menggunakan huruf kapital karakter pertama.
sumber
spacecamel ('somethingLikeThis')
// nilai yang dikembalikan: sesuatu Seperti Ini
sumber
Lodash menangani ini dengan baik
_.startCase()
sumber
Solusi yang menangani angka juga:
Diuji di sini [JSFiddle, tidak ada perpustakaan. Tidak mencoba IE]; harus cukup stabil.
sumber
Jika Anda tidak peduli dengan peramban yang lebih lama (atau tidak keberatan menggunakan fungsi penurunan cadangan untuknya), ini dapat membagi string genap seperti 'xmlHTTPRequest' (tapi tentu saja yang seperti 'XMLHTTPRequest' tidak dapat).
sumber
Versi saya
sumber
Coba solusi ini di sini -
sumber
Bukan regex, tetapi berguna untuk mengetahui teknik biasa dan lama seperti ini:
sumber