JavaScript localeCompare()

admin發表於2018-09-02

localeCompare() 方法按照本地排序規則來比較兩個字串。

假設比較兩個漢字,比較的是拼音大小(拼音的大小規則後面會介紹)。

更多字串內容可以參閱 JavaScript String 字串 一章節。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
str.localeCompare(anotherStr)

引數解析:

(1).字串 str 將與字串 anotherStr 進行比較。

如果 str 小於 anotherStr,則返回值小於 0。

如果兩個相等,則返回值為 0。

如果 str 大於 anotherStr,則返回值大於 0。

字串比較大小,是比較Unicode編碼的大小:

(1).比較的是字元的 Unicode 碼的大小。

(2).首先從第一個字元開始比較,如果第一個字元無法比較出大小,則比較第二個,以此類推。

(3).以 "abcDef" 和 "abcmef" 為例子,從字元 "a" 開始比較,直到遇到 D 和 m 才會比較出大小。

localeCompare() 考慮本地預設規則排序,但ES並沒有規定本地排序規則,而是採用作業系統規定的規則。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let a = "螞", b = "蟻";
console.log(b.localeCompare(a));

漢字是按照拼音的先後順序進行排序,y字元Unicode值要小於m字元的Unicode值。

所以"蟻"比"螞"大。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let a = "螞蟻部落", b = "螞蟻奮鬥";
console.log(b.localeCompare(a));

首先會比較第一個字元的大小,如果沒法相同,再來比較第二個字元,以此類推。

相關文章