Rumah > hujung hadapan web > tutorial js > Bagaimana untuk mengalih keluar Aksen daripada Rentetan dalam JavaScript?

Bagaimana untuk mengalih keluar Aksen daripada Rentetan dalam JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-12-13 16:15:10
asal
434 orang telah melayarinya

How to Remove Accents from Strings in JavaScript?

Alih Keluar Aksen/Diakritik dalam Rentetan dalam JavaScript

Untuk mengalih keluar aksara yang ditekankan daripada rentetan, adalah perlu untuk menggunakan yang komprehensif proses yang melibatkan normalisasi rentetan dan padanan kelas aksara. Berikut ialah panduan terperinci tentang cara untuk mencapai ini:

Penyelesaian ES2015/ES6 dengan String.prototype.normalize()

const str = "Crème Brûlée";
const accentedCharsRegex = /[\u0300-\u036f]/g;

const normalizedStr = str.normalize("NFD");
const accentsRemovedStr = normalizedStr.replace(accentedCharsRegex, "");

console.log(accentsRemovedStr); // "Creme Brulee"
Salin selepas log masuk

Di sini, normalize("NFD ") kaedah menguraikan aksara gabungan (cth., è) kepada bahagian konstituennya (e dan ̀). Selepas itu, ungkapan biasa [u0300-u036f] menyasarkan dan menggantikan semua tanda diakritik dalam julat Unicode yang ditentukan.

Kaedah Melarikan Harta Unikod

Dalam ES2020, anda boleh memanfaatkan Sifat Unicode terlepas untuk lebih ringkas pendekatan:

const str = "Crème Brûlée";
const accentsRemovedStr = str.normalize("NFD").replace(/\p{Diacritic}/gu, "");

console.log(accentsRemovedStr); // "Creme Brulee"
Salin selepas log masuk

Kaedah ini menggunakan escape sifat p{Diacritic} untuk memadankan semua tanda diakritik dan bukannya mentakrifkan julat Unicode tertentu.

Isih dengan Intl.Collator

Jika matlamat utama anda ialah mengisih rentetan aksen, anda boleh mempertimbangkan untuk menggunakan Intl.Collator, yang menawarkan sokongan yang memuaskan untuk pengisihan sensitif aksen:

const strArr = ["crème brûlée", "crame brulai", "creme brulee", "crexe brulee", "crome brouillé"];

const collator = new Intl.Collator();
const sortedArr = strArr.sort(collator.compare);

console.log(sortedArr);
Salin selepas log masuk

Secara lalai, Intl.Collator akan mengisih rentetan secara sensitif huruf besar dan tidak sensitif aksen. Untuk mencapai pengisihan sensitif aksen, adalah penting untuk menentukan peraturan khusus semasa instantiasi Intl.Collator.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Aksen 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