Heim > Web-Frontend > js-Tutorial > Wie entferne ich effizient Akzente aus Zeichenfolgen in JavaScript?

Wie entferne ich effizient Akzente aus Zeichenfolgen in JavaScript?

Linda Hamilton
Freigeben: 2024-12-14 22:38:15
Original
222 Leute haben es durchsucht

How to Efficiently Remove Accents from Strings in JavaScript?

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"
Nach dem Login kopieren

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"
Nach dem Login kopieren

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é']
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage