Javascript String localeCompare()

The localeCompare() method checks if a given string comes before, after, or is equivalent as another string in sort order.

Example

// comparing 'c' with 'b' using localeCompare() let result1 = 'c'.localeCompare('b');
// returns positive value if 'b' comes before 'c' console.log(result1); // Output: // 1

localeCompare() Syntax

The syntax of the localeCompare() method is:

str.localeCompare(compareStr, locales, options)

Here, str is a string.


localeCompare() Parameters

The localeCompare() method takes in:

  • compareStr - The string against which str is compared.
  • locales and options (optional) - These arguments customize function by specifying what formatting conventions to use.

localeCompare() Return Value

The localeCompare() returns:

  • -1 : if the reference string is sorted before compareStr.
  • 0 : if two strings are equivalent.
  • 1 : if the reference string is sorted after compareStr.

Note: Since the returned negative and positive integers vary between browsers, do not rely on exact values -1 or 1.


Example 1: Using localeCompare() Method

// comparing 'c' with 'b' using localeCompare() let result1 = 'c'.localeCompare('b')
; console.log(result1);

Output

1

In the above example, we have passed 'c' as a reference string and 'b' as a compare string and have assigned the return value of localeCompare() to result1.

Since the alphabet 'c' comes after 'b', 'c'.localeCompare('b') returns a positive number i.e. 1.


Example 2: Using localeCompare()

// comparing 'c' with 'b' using localeCompare() let result2 = 'b'.localeCompare('c');
console.log(result2);

Output

-1

Here, we have passed 'b' as a reference string and 'c' as a compare string. Since the reference string comes before compareStr, 'b'.localeCompare('c') returns a negative value which is -1.


Example 3: localeCompare() With Equal Strings

// comparing 'JavaScript' and 'JavaScript' using localeCompare() let result1 = 'JavaScript'.localeCompare('JavaScript');
console.log(result1);
// comparing 'Python' and 'JavaScript' using localeCompare() let result2 = 'Python'.localeCompare('JavaScript');
console.log(result2);

Output

0
1

In the above example, we have compared two unequal strings 'Python' and 'JavaScript'. Since 'Python' comes after 'JavaScript', the method returns 1.

However, while comparing two equal strings 'JavaScript', the method returns 0.


Example 4: Using localeCompare() With locales and options

// passing locale that specifies the German formatting convention let value1 = "ä".localeCompare("z", "de");
console.log(value1); // a negative value: in German, ä sorts before z
// passing locale that specifies the Swedish formatting convention let value2 = "ä".localeCompare("z", "sv");
console.log(value2); // a positive value: in Swedish, ä sorts after z // default comparison between two numbers '5' and '40' console.log("5".localeCompare("40")); // 1
// the last parameters indicates 'options' let value3 = "5".localeCompare("40", undefined, { numeric: true });
console.log(value3); // a negative value

Output

-1
1
1
-1