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
Also Read: