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"
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"
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);
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!