從JavaScript 中的字串中刪除重音符號/變音符號
本文深入研究了從JavaScript 中的字串中刪除重音符號或變音符號的技術,解決了IE6 中正規表示式面臨的挑戰。
使用ES2015/ES6 String.prototype.normalize()
ES2015/ES6 引入了String.prototype.normalize() 方法,該方法可以刪除變音符號。例如:
const str = "Crème Brûlée"; const normalized = str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); console.log(normalized); // Output: "Creme Brulee"
請注意,「NFD」用於將組合字素分解為簡單的字素,以便於刪除變音符號。
使用Unicode 屬性轉義
另一種方法涉及使用Unicode 屬性轉義符:
const str = "Crème Brûlée"; const removed = str.normalize("NFD").replace(/\p{Diacritic}/gu, ""); console.log(removed); // Output: "Creme Brulee"
用於排序
如果目標只是排序,可以使用Intl.Collate:
const c = new Intl.Collator(); const arr = ["creme brulee", "crème brûlée", ...]; arr.sort(c.compare);
IE6 注意事項
與IE6,正規表示式可能會出現問題。為了解決這個問題,一種簡單的方法是手動將特定的重音字元替換為其等效的基本字元。例如:
const accentsTidy = (str) => { return str .toLowerCase() .replace(/\s/g, "") .replace(/[àáâãäå]/g, "a") .replace(/æ/g, "ae") // ... and so on .replace(/\W/g, ""); };
以上是如何從 JavaScript 中的字串中刪除重音符號,包括 IE6 相容性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!