Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. String
  6. localeCompare()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

String.prototype.localeCompare()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

DielocaleCompare() Methode vonString Werten gibt eine Zahl zurück, die angibt, ob diese Zeichenkette vor, nach oder gleich der angegebenen Zeichenkette in der Sortierreihenfolge kommt. In Implementierungen mit Unterstützung für dieIntl.Collator API delegiert diese Methode anIntl.Collator.

Beim Vergleich einer großen Anzahl von Zeichenketten, wie zum Beispiel beim Sortieren großer Arrays, ist es besser, einIntl.Collator Objekt zu erstellen und die von seinercompare() Methode bereitgestellte Funktion zu verwenden.

Probieren Sie es aus

const a = "réservé"; // With accents, lowercaseconst b = "RESERVE"; // No accents, uppercaseconsole.log(a.localeCompare(b));// Expected output: 1console.log(a.localeCompare(b, "en", { sensitivity: "base" }));// Expected output: 0

Syntax

js
localeCompare(compareString)localeCompare(compareString, locales)localeCompare(compareString, locales, options)

Parameter

Die Parameterlocales undoptions passen das Verhalten der Funktion an und ermöglichen es Anwendungen, die Sprache anzugeben, deren Formatierungskonventionen verwendet werden sollen.

In Implementierungen, die dieIntl.Collator API unterstützen, entsprechen diese Parameter genau den Parametern desIntl.Collator() Konstruktors. Implementierungen ohneIntl.Collator Unterstützung sollten beide Parameter ignorieren, was dazu führt, dass das zurückgegebene Vergleichsergebnis vollständig von der Implementierung abhängt — es muss lediglichkonsistent sein.

compareString

Die Zeichenkette, mit derreferenceStr verglichen wird. Alle Werte werdenin Zeichenketten umgewandelt, daher führt das Auslassen oder Übergeben vonundefined dazu, dasslocaleCompare() mit der Zeichenkette"undefined" vergleicht, was selten erwünscht ist.

localesOptional

Eine Zeichenkette mit einemBCP 47-Sprachtag oder ein Array solcher Zeichenketten. Entspricht demlocales Parameter desIntl.Collator() Konstruktors.

In Implementierungen ohneIntl.Collator Unterstützung wird dieser Parameter ignoriert und normalerweise die Locale des Hosts verwendet.

optionsOptional

Ein Objekt, das das Ausgabeformat anpasst. Entspricht demoptions Parameter desIntl.Collator() Konstruktors.

In Implementierungen ohneIntl.Collator Unterstützung wird dieser Parameter ignoriert.

Siehe denIntl.Collator() Konstruktor für Details zu denlocales undoptions Parametern und wie man sie verwendet.

Rückgabewert

Einenegative Zahl, wennreferenceStr vorcompareString steht;positiv, wennreferenceStr nachcompareString steht;0, wenn sie gleichwertig sind.

In Implementierungen mitIntl.Collator entspricht diesnew Intl.Collator(locales, options).compare(referenceStr, compareString).

Beschreibung

Gibt eine ganze Zahl zurück, die angibt, obreferenceStr vor, nach oder gleichwertig mitcompareString kommt.

  • Negativ, wennreferenceStr vorcompareString steht
  • Positiv, wennreferenceStr nachcompareString steht
  • Gibt0 zurück, wenn sie gleichwertig sind

Warnung:Verlassen Sie sich nicht auf exakte Rückgabewerte von-1 oder1!

Negative und positive ganzzahlige Ergebnisse variieren zwischen Browsern (sowie zwischen Browser-Versionen), da die ECMAScript-Spezifikation nur negative und positive Werte vorschreibt. Einige Browser können-2 oder2 oder sogar andere negative oder positive Werte zurückgeben.

Beispiele

Verwendung von localeCompare()

js
// The letter "a" is before "c" yielding a negative value"a".localeCompare("c"); // -2 or -1 (or some other negative value)// Alphabetically the word "check" comes after "against" yielding a positive value"check".localeCompare("against"); // 2 or 1 (or some other positive value)// "a" and "a" are equivalent yielding a neutral value of zero"a".localeCompare("a"); // 0

Ein Array sortieren

localeCompare() ermöglicht eine Groß- und Kleinschreibung ignorierende Sortierung eines Arrays.

js
const items = ["réservé", "Premier", "Cliché", "communiqué", "café", "Adieu"];items.sort((a, b) => a.localeCompare(b, "fr", { ignorePunctuation: true }));// ['Adieu', 'café', 'Cliché', 'communiqué', 'Premier', 'réservé']

Browser-Unterstützung für erweiterte Argumente prüfen

Die Argumentelocales undoptions werden noch nicht in allen Browsern unterstützt.

Um zu prüfen, ob eine Implementierung sie unterstützt, verwenden Sie das"i" Argument (einErfordernis, dass ungültige Sprach-Tags abgelehnt werden) und suchen nach einerRangeError Ausnahme:

js
function localeCompareSupportsLocales() {  try {    "foo".localeCompare("bar", "i");  } catch (e) {    return e.name === "RangeError";  }  return false;}

Verwendung von locales

Die Ergebnisse, die durchlocaleCompare() bereitgestellt werden, variieren zwischen den Sprachen. Um die Sortierreihenfolge der in der Benutzeroberfläche Ihrer Anwendung verwendeten Sprache zu erhalten, stellen Sie sicher, dass Sie diese Sprache (und möglicherweise einige Fallback-Sprachen) mit demlocales Argument angeben:

js
console.log("ä".localeCompare("z", "de")); // a negative value: in German, ä sorts before zconsole.log("ä".localeCompare("z", "sv")); // a positive value: in Swedish, ä sorts after z

Verwendung von options

Die vonlocaleCompare() bereitgestellten Ergebnisse können mit demoptions Argument angepasst werden:

js
// in German, ä has a as the base letterconsole.log("ä".localeCompare("a", "de", { sensitivity: "base" })); // 0// in Swedish, ä and a are separate base lettersconsole.log("ä".localeCompare("a", "sv", { sensitivity: "base" })); // a positive value

Numerische Sortierung

js
// by default, "2" > "10"console.log("2".localeCompare("10")); // 1// numeric using options:console.log("2".localeCompare("10", undefined, { numeric: true })); // -1// numeric using locales tag:console.log("2".localeCompare("10", "en-u-kn-true")); // -1

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-string.prototype.localecompare
ECMAScript® 2026 Internationalization API Specification
# sup-String.prototype.localeCompare

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp