从字符串中删除重音字符(也称为变音符号)是一种常见需求在文本处理中。在 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.Collator 提供了更准确的排序功能。
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中文网其他相关文章!