從字串中刪除重音字元(也稱為變音符號)是一種常見需求在文字處理中。在 IE6 等舊版瀏覽器中,使用正規表示式操作此類字元可能會出現問題。
隨著 ES2015/ES6 的出現,字串.prototype.normalize() 方法可用於此任務。透過將字串標準化為 Unicode 範式分解 (NFD),重音字元將被分解為其基本字元和變音標記。
const str = "Crème Brûlée"; str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); // "Creme Brulee"
範圍 [u0300-u036f] 與 Unicode 組合變音標記區塊相符。或者,/p{Diacritic}/gu 正規表示式可以與 Unicode 屬性轉義一起使用。
使用簡單的排序方法對帶有重音符號的字串進行排序可能會不一致。 Intl.Collate 提供了更準確的排序功能。
const c = new Intl.Collator(); ["creme brulee", "crème brûlée", ...].sort(c.compare); // Sorts correctly based on collation rules
使用 String.normalize() 或 Intl.Collator 提供了從 JavaScript 中的字串中刪除重音符號/變音符號的有效方法。這些解決方案可以比傳統方法更一致地處理排序注意事項。
以上是如何有效地去除 JavaScript 字串中的重音符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!