Mengalih keluar Aksen/Diakritik daripada Rentetan dalam JavaScript
Artikel ini mendalami teknik untuk mengalih keluar aksen atau diakritik daripada rentetan dalam JavaScript, menangani cabaran yang dihadapi dalam IE6 dengan ungkapan biasa.
Menggunakan ES2015/ES6 String.prototype.normalize()
ES2015/ES6 memperkenalkan kaedah String.prototype.normalize(), yang membolehkan pengalihan keluar diakritik. Contohnya:
const str = "Crème Brûlée"; const normalized = str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); console.log(normalized); // Output: "Creme Brulee"
Perhatikan bahawa "NFD" digunakan untuk menguraikan gabungan grafem kepada yang ringkas, memudahkan penyingkiran diakritik.
Menggunakan Unicode Property Escapes
Pendekatan lain melibatkan penggunaan sifat Unicode melarikan diri:
const str = "Crème Brûlée"; const removed = str.normalize("NFD").replace(/\p{Diacritic}/gu, ""); console.log(removed); // Output: "Creme Brulee"
Untuk Tujuan Isih
Jika matlamatnya hanyalah mengisih, Intl.Collator boleh digunakan:
const c = new Intl.Collator(); const arr = ["creme brulee", "crème brûlée", ...]; arr.sort(c.compare);
Pertimbangan IE6
Dengan IE6, ungkapan biasa boleh bermasalah. Untuk menangani perkara ini, pendekatan yang mudah adalah dengan menggantikan aksara beraksen tertentu secara manual dengan aksara asas yang setara. Contohnya:
const accentsTidy = (str) => { return str .toLowerCase() .replace(/\s/g, "") .replace(/[àáâãäå]/g, "a") .replace(/æ/g, "ae") // ... and so on .replace(/\W/g, ""); };
Atas ialah kandungan terperinci Bagaimana untuk Mengalih keluar Aksen daripada Rentetan dalam JavaScript, Termasuk Keserasian IE6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!