Antwort an „Rolf B“ verfassen

Hallo Gunnar,

Nein, die Punkte werden nicht entfernt.

Werden sie auch nicht. Aber zunächst einmal ignoriert:

console.log("Buchse".localeCompare("Büchse"));
// 1
console.log("Büchse".localeCompare("Buchse"));
// -1

Die localeCompare-Funktion delegiert – so möglich – ihren Job an Intl.Collator und der verwendet per Default sensitivity:"variant" für den Vergleich. D.h. zuerst wird ein base-Vergleich gemacht (case-insensitive, accent-insensitive). Meldet der "unterschiedlich", ist das das Ergebnis von localCompare. Deshalb folgt "bude" IMMER hinter "büchse", egal wie groß oder klein man die Buchstaben schreibt.

Wenn man aus der Urzeit an Codepoint-basierende Vergleiche gewöhnt ist, dann ist das erstmal merkwürdig.

Vergleicht man "büchse" und "Büchse", so ist der base-Vergleich 0, der case-Vergleich ist bei mir -1 - niemand legt den caseFirst-Schalter fest, es könnte also implementierungsabhängig sein. Der accent-Vergleich ist wieder 0 (case-insensitive) und variant ist -1.

Das ist alles recht komplex…

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen