Heim >Web-Frontend >js-Tutorial >Wie entferne ich Akzente aus Zeichenfolgen in JavaScript, einschließlich IE6-Kompatibilität?

Wie entferne ich Akzente aus Zeichenfolgen in JavaScript, einschließlich IE6-Kompatibilität?

DDD
DDDOriginal
2024-12-21 12:16:19695Durchsuche

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

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn