Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengeluarkan Aksen dengan Cekap daripada Rentetan dalam JavaScript?

Bagaimana untuk Mengeluarkan Aksen dengan Cekap daripada Rentetan dalam JavaScript?

Linda Hamilton
Lepaskan: 2024-12-14 22:38:15
asal
222 orang telah melayarinya

How to Efficiently Remove Accents from Strings in JavaScript?

Alih Keluar Aksen/Diakritik dalam Rentetan dalam JavaScript

Mengalih keluar aksara beraksen daripada rentetan boleh menjadi tugas yang berguna untuk pemprosesan teks dan analisis data. Dalam kod yang disediakan, fungsi accentsTidy cuba mengalih keluar aksen menggunakan ungkapan biasa. Walau bagaimanapun, pendekatan ini mungkin tidak cekap atau boleh dipercayai, terutamanya dalam pelayar lama seperti IE6.

Penyelesaian ES2015/ES6

Penyelesaian yang lebih moden dan cekap ialah menggunakan Kaedah ES2015/ES6 String.prototype.normalize(). Kaedah ini menukar rentetan kepada bentuk ternormal Unicode. Dengan menggunakan bentuk "NFD", yang menguraikan gabungan grafem menjadi aksara asasnya dan menggabungkan tanda, mengalih keluar diakritik menjadi lebih mudah. Berikut ialah contoh:

const str = "Crème Brûlée";
str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
// "Creme Brulee"
Salin selepas log masuk

Ungkapan biasa sepadan dengan julat Unikod U 0300 → U 036F, yang merangkumi pelbagai tanda diakritik. Bentuk biasa Unicode lain seperti "NFKD" boleh digunakan untuk menormalkan aksara seperti uFB01 (fi) secara berbeza.

Menggunakan Unicode Property Escapes

ES2018 memperkenalkan Unicode property escapes, menyediakan cara yang lebih ringkas untuk membuang diakritik:

str.normalize("NFD").replace(/\p{Diacritic}/gu, "");
// "Creme Brulee"
Salin selepas log masuk

Escape ini sepadan dengan semua aksara dengan sifat Unicode "Diacritic".

Sebagai alternatif: Isih

Jika matlamatnya adalah untuk menyusun rentetan dengan aksen, objek Intl.Collator boleh digunakan. Ia menyokong rentetan pengisihan berdasarkan susunan kanonik Unicode mereka, yang mengabaikan diakritik. Berikut ialah contoh:

const c = new Intl.Collator();
["creme brulee", "crème brûlée", "crame brulai", "crome brouillé",
"creme brulay", "creme brulfé", "creme bruléa"].sort(c.compare);
// ['crame brulai', 'creme brulay', 'creme bruléa', 'creme brulee', 'crème brûlée', 'creme brulfé', 'crome brouillé']
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Aksen dengan Cekap daripada Rentetan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan