首頁 >web前端 >js教程 >如何從 JavaScript 中的字串中刪除重音符號,包括 IE6 相容性?

如何從 JavaScript 中的字串中刪除重音符號,包括 IE6 相容性?

DDD
DDD原創
2024-12-21 12:16:19694瀏覽

How to Remove Accents from Strings in JavaScript, Including IE6 Compatibility?

從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.Collat​​e:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn