Akzente/Diakritika in einer Zeichenfolge in JavaScript entfernen
Das Entfernen von Akzentzeichen aus Zeichenfolgen kann eine nützliche Aufgabe für die Textverarbeitung und Datenanalyse sein. Im bereitgestellten Code versucht die Funktion „accentsTidy“, Akzente mithilfe regulärer Ausdrücke zu entfernen. Dieser Ansatz ist jedoch möglicherweise nicht effizient oder zuverlässig, insbesondere in älteren Browsern wie IE6.
ES2015/ES6-Lösung
Eine modernere und effizientere Lösung ist die Verwendung von ES2015/ES6 String.prototype.normalize()-Methode. Diese Methode konvertiert eine Zeichenfolge in eine normalisierte Unicode-Form. Durch die Verwendung der „NFD“-Form, die kombinierte Grapheme in ihre Grundzeichen und Kombinationszeichen zerlegt, wird das Entfernen diakritischer Zeichen einfacher. Hier ist ein Beispiel:
const str = "Crème Brûlée"; str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); // "Creme Brulee"
Der reguläre Ausdruck entspricht dem Unicode-Bereich U 0300 → U 036F, der verschiedene diakritische Zeichen enthält. Andere Unicode-Normalformen wie „NFKD“ können verwendet werden, um Zeichen wie uFB01 (fi) anders zu normalisieren.
Verwendung von Unicode-Eigenschafts-Escapezeichen
ES2018 führte Unicode-Eigenschafts-Escapezeichen ein, Bietet eine prägnantere Möglichkeit, diakritische Zeichen zu entfernen:
str.normalize("NFD").replace(/\p{Diacritic}/gu, ""); // "Creme Brulee"
Dieses Escape gleicht alle Zeichen mit dem ab Unicode-Eigenschaft „Diacritic“.
Alternativ: Sortieren
Wenn das Ziel darin besteht, Zeichenfolgen mit Akzenten zu sortieren, kann das Objekt Intl.Collator verwendet werden. Es unterstützt das Sortieren von Zeichenfolgen basierend auf ihrer kanonischen Unicode-Reihenfolge, wobei diakritische Zeichen ignoriert werden. Hier ist ein Beispiel:
const c = new Intl.Collator(); ["creme brulee", "crème brûlée", "crame brulai", "crome brouillé", "creme brulay", "creme brulfé", "creme bruléa"].sort(c.compare); // ['crame brulai', 'creme brulay', 'creme bruléa', 'creme brulee', 'crème brûlée', 'creme brulfé', 'crome brouillé']
Das obige ist der detaillierte Inhalt vonWie entferne ich effizient Akzente aus Zeichenfolgen in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!