String.prototype.localeCompare()

localeCompare(compareString[, locales[, options]])
Returns: number · Added in vES1 · Updated March 13, 2026 · String Methods
string locale internationalization sorting es1

The localeCompare() method compares two strings in the current locale (or a specified locale) and returns a number indicating whether the reference string comes before, after, or is equivalent to the compared string in sort order. This is essential for building multilingual applications that need locale-aware sorting and searching.

Syntax

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

Parameters

ParameterTypeDefaultDescription
compareStringstringThe string to compare against
localesstring or arrayundefinedBCP 47 language tag(s) (e.g., ‘en-US’, ‘de-DE’)
optionsobjectundefinedConfiguration for comparison behavior

Options Object

PropertyTypeDescription
sensitivitystring’base’, ‘accent’, ‘case’, ‘variant’
ignorePunctuationbooleanWhether to ignore punctuation
numericbooleanWhether to use numeric ordering
caseFirststring’upper’ or ‘lower’

Return Value

Returns a negative number if the reference string sorts before compareString, a positive number if it sorts after, or 0 if they are equivalent.

Examples

Basic Comparison

const str = 'apple';

str.localeCompare('banana');   // -1 (apple comes before banana)
str.localeCompare('apple');    // 0 (equal)
str.localeCompare('zebra');    // 1 (apple comes after zebra)

Locale-Aware Sorting

const fruits = ['banana', 'Apple', 'cherry'];

// Default comparison
fruits.sort((a, b) => a.localeCompare(b));
// Result: ['Apple', 'banana', 'cherry']

// German phonebook ordering
fruits.sort((a, b) => a.localeCompare(b, 'de-DE'));

Numeric Sorting

const versions = ['v10', 'v2', 'v1', 'v20'];

// Numeric sorting (v1, v2, v10, v20 instead of v1, v10, v2, v20)
versions.sort((a, b) => a.localeCompare(b, undefined, { numeric: true }));
// Result: ['v1', 'v2', 'v10', 'v20']

Browser Support

Supported in all modern browsers. Internet Explorer requires version 6+. For older browsers, consider using a polyfill.

See Also