Heim >Web-Frontend >js-Tutorial >Wie entferne ich Akzente aus Zeichenfolgen in JavaScript, einschließlich IE6-Kompatibilität?
Akzente/diakritische Zeichen aus Zeichenfolgen in JavaScript entfernen
Dieser Artikel befasst sich mit den Techniken zum Entfernen von Akzenten oder diakritischen Zeichen aus Zeichenfolgen in JavaScript und geht dabei auf das Problem ein Herausforderung im IE6 mit regulären Ausdrücken.
Verwenden ES2015/ES6 String.prototype.normalize()
ES2015/ES6 führt die Methode String.prototype.normalize() ein, die das Entfernen diakritischer Zeichen ermöglicht. Zum Beispiel:
const str = "Crème Brûlée"; const normalized = str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); console.log(normalized); // Output: "Creme Brulee"
Beachten Sie, dass „NFD“ verwendet wird, um kombinierte Grapheme in einfache zu zerlegen, was die Entfernung diakritischer Zeichen erleichtert.
Verwendung von Unicode-Eigenschafts-Escapezeichen
Ein anderer Ansatz besteht darin, die Unicode-Eigenschaft zu verwenden Escapezeichen:
const str = "Crème Brûlée"; const removed = str.normalize("NFD").replace(/\p{Diacritic}/gu, ""); console.log(removed); // Output: "Creme Brulee"
Für Sortierzwecke
Wenn das Ziel lediglich das Sortieren ist, kann Intl.Collator verwendet werden:
const c = new Intl.Collator(); const arr = ["creme brulee", "crème brûlée", ...]; arr.sort(c.compare);
Überlegungen zu IE6
Bei IE6 können reguläre Ausdrücke problematisch sein. Um dieses Problem zu lösen, besteht ein einfacher Ansatz darin, bestimmte Akzentzeichen manuell durch die entsprechenden Grundzeichen zu ersetzen. Zum Beispiel:
const accentsTidy = (str) => { return str .toLowerCase() .replace(/\s/g, "") .replace(/[àáâãäå]/g, "a") .replace(/æ/g, "ae") // ... and so on .replace(/\W/g, ""); };
Das obige ist der detaillierte Inhalt vonWie entferne ich Akzente aus Zeichenfolgen in JavaScript, einschließlich IE6-Kompatibilität?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!