Akzente/Diakritika in einer Zeichenfolge in JavaScript entfernen
Um akzentuierte Zeichen aus einer Zeichenfolge zu entfernen, ist es notwendig, eine umfassende Methode zu verwenden Prozess, der die Normalisierung von Zeichenfolgen und den Abgleich von Zeichenklassen umfasst. Hier ist eine detaillierte Anleitung, wie Sie dies erreichen können:
ES2015/ES6-Lösung mit String.prototype.normalize()
const str = "Crème Brûlée"; const accentedCharsRegex = /[\u0300-\u036f]/g; const normalizedStr = str.normalize("NFD"); const accentsRemovedStr = normalizedStr.replace(accentedCharsRegex, ""); console.log(accentsRemovedStr); // "Creme Brulee"
Hier ist normalize("NFD ")-Methode zerlegt die kombinierten Zeichen (z. B. è) in ihre Bestandteile (e und ̀). Anschließend zielt der reguläre Ausdruck [u0300-u036f] auf alle diakritischen Zeichen innerhalb des angegebenen Unicode-Bereichs ab und ersetzt sie.
Unicode-Eigenschafts-Escape-Methode
Innerhalb von ES2020 können Sie diese nutzen Unicode-Eigenschafts-Escapezeichen für einen prägnanteren Ansatz:
const str = "Crème Brûlée"; const accentsRemovedStr = str.normalize("NFD").replace(/\p{Diacritic}/gu, ""); console.log(accentsRemovedStr); // "Creme Brulee"
Diese Methode nutzt die p{Diacritic}-Eigenschafts-Escape, um alle diakritischen Zeichen abzugleichen, anstatt einen bestimmten Unicode-Bereich zu definieren.
Sortieren mit Intl.Collator
Wenn Ihr primäres Ziel darin besteht, mit Akzent zu sortieren Zeichenfolgen können Sie die Verwendung von Intl.Collator in Betracht ziehen, das eine zufriedenstellende Unterstützung für akzentsensitive Sortierung bietet:
const strArr = ["crème brûlée", "crame brulai", "creme brulee", "crexe brulee", "crome brouillé"]; const collator = new Intl.Collator(); const sortedArr = strArr.sort(collator.compare); console.log(sortedArr);
Standardmäßig ist Intl.Collator sortiert Zeichenfolgen unter Berücksichtigung der Groß- und Kleinschreibung und ohne Berücksichtigung von Akzenten. Um eine akzentsensitive Sortierung zu erreichen, ist es wichtig, bei der Instanziierung von Intl.Collator spezifische Regeln zu definieren.
Das obige ist der detaillierte Inhalt vonWie entferne ich Akzente aus Zeichenfolgen in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!