Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengeluarkan Aksen dengan Cekap daripada Rentetan dalam JavaScript?

Bagaimanakah Saya Boleh Mengeluarkan Aksen dengan Cekap daripada Rentetan dalam JavaScript?

DDD
DDDasal
2024-12-18 02:49:14149semak imbas

How Can I Efficiently Remove Accents from Strings in JavaScript?

Mengalih keluar Aksen/Diakritik daripada Rentetan dalam JavaScript

Latar Belakang dan Cabaran

Mengalih keluar aksara yang ditekankan (juga dikenali sebagai diakritik) daripada rentetan adalah keperluan biasa dalam pemprosesan teks. Dalam pelayar lama seperti IE6, memanipulasi aksara sedemikian menggunakan ungkapan biasa boleh menjadi masalah.

Pendekatan Menggunakan ES2015/ES6 String.prototype.normalize()

Dengan kemunculan ES2015/ES6, String Kaedah .prototype.normalize() boleh digunakan untuk tugas ini. Dengan menormalkan rentetan kepada Unicode Normal Form Decomposition (NFD), aksara beraksen dipecahkan kepada aksara asas dan tanda diakritiknya.

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

Julat [u0300-u036f] sepadan dengan blok Unicode Combining Diacritical Marks. Sebagai alternatif, ungkapan biasa /p{Diacritic}/gu boleh digunakan dengan sifat Unicode melarikan diri.

Pertimbangan Isih

Isih rentetan dengan aksen boleh menjadi tidak konsisten menggunakan kaedah isihan mudah. Intl.Collator menyediakan keupayaan pengisihan yang lebih tepat.

const c = new Intl.Collator();
["creme brulee", "crème brûlée", ...].sort(c.compare);
// Sorts correctly based on collation rules

Kesimpulan

Menggunakan String.normalize() atau Intl.Collator menyediakan kaedah yang berkesan untuk mengalih keluar aksen/diakritik daripada rentetan dalam JavaScript. Penyelesaian ini boleh mengendalikan pertimbangan pengisihan dengan lebih konsisten daripada kaedah tradisional.

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

Kenyataan:
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