Intl.Collator
åºçº¿
广æ³å¯ç¨
èª 2017å¹´9æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Intl.Collator 对象ç¨äºè¯è¨ææçå符串æ¯è¾ã
å°è¯ä¸ä¸
console.log(["Z", "a", "z", "ä"].sort(new Intl.Collator("de").compare));
// Expected output: Array ["a", "ä", "z", "Z"]
console.log(["Z", "a", "z", "ä"].sort(new Intl.Collator("sv").compare));
// Expected output: Array ["a", "z", "Z", "ä"]
console.log(
["Z", "a", "z", "ä"].sort(
new Intl.Collator("de", { caseFirst: "upper" }).compare,
),
);
// Expected output: Array ["a", "ä", "Z", "z"]
æé 彿°
Intl.Collator()-
å建ä¸ä¸ªæ°ç
Collator对象ã
éææ¹æ³
Intl.Collator.supportedLocalesOf()-
è¿åä¸ä¸ªæ°åï¼å ¶ä¸å 嫿ä¾çåºåï¼localeï¼ä¸è¢«è¿è¡æ¶ææ¯æçï¼èä¸å¿ åéå°è¿è¡æ¶çé»è®¤åºåã
å®ä¾æ¹æ³
Intl.Collator.prototype.compare-
getter 彿°ï¼æ ¹æ®
Intl.Collator对象çæåºé¡ºåºæ¥æ¯è¾ä¸¤ä¸ªå符串ã Intl.Collator.prototype.resolvedOptions()-
è¿åä¸ä¸ªæ°å¯¹è±¡ï¼å ¶å±æ§åæ äºå¨å¯¹è±¡åå§åæé´è®¡ç®æå¾çåºååä¸ç³»åé项ã
示ä¾
>ä½¿ç¨ Collator
以ä¸ç¤ºä¾æ¼ç¤ºäºä¸ä¸ªå符串å¨å¦ä¸ä¸ªå符串ä¹åãä¹åæä¸å¦ä¸ä¸ªå符串å¤äºåä¸çº§å«æ¶å¯è½åºç°çä¸åç»æï¼
console.log(new Intl.Collator().compare("a", "c")); // -1ï¼æä¸äºå
¶ä»çè´å¼
console.log(new Intl.Collator().compare("c", "a")); // 1ï¼æä¸äºå
¶ä»çæ£å¼
console.log(new Intl.Collator().compare("a", "a")); // 0
请注æï¼ä¸é¢ä»£ç 䏿¾ç¤ºçç»æå¯è½å æµè§å¨åæµè§å¨çæ¬èå¼ãè¿æ¯å 为è¿äºå¼æ¯ç¹å®äºå®ç°çãå³ï¼è§èä» è¦æ±å¨æ¯è¾çå符串ä¹ååä¹ååå«å¯¹åºè´å¼åæ£å¼ã
ä½¿ç¨ locales
Collator.prototype.compare() æä¾çç»æå¨ä¸åè¯è¨ä¹é´ææä¸åã为äºè·å¾ç¨äºä½ çåºç¨ç¨åºçç¨æ·çé¢çè¯è¨æ ¼å¼ï¼è¯·ç¡®ä¿ä½¿ç¨ locales åæ°æå®äºè¯è¨ï¼å¯è½è¿æä¸äºåéè¯è¨ï¼ï¼
// å¾·è¯ä¸ï¼Ã¤ ä½¿ç¨ a çæåº
console.log(new Intl.Collator("de").compare("ä", "z"));
// -1ï¼æä¸äºå
¶ä»çè´å¼
// å¨çå
¸è¯ä¸ï¼Ã¤ æå¨ z ä¹å
console.log(new Intl.Collator("sv").compare("ä", "z"));
// 1ï¼æä¸äºå
¶ä»çæ£å¼
ä½¿ç¨ options
Collator.prototype.compare() æä¾çç»æå¯ä»¥ä½¿ç¨ options åæ°èªå®ä¹ï¼
// å¾·è¯ä¸ï¼Ã¤ ä½¿ç¨ a ä½ä¸ºåºæ¬åæ¯
console.log(new Intl.Collator("de", { sensitivity: "base" }).compare("ä", "a"));
// 0
// çå
¸è¯ä¸ï¼Ã¤ å a æ¯åç¬çåºæ¬åæ¯
console.log(new Intl.Collator("sv", { sensitivity: "base" }).compare("ä", "a"));
// 1ï¼æä¸äºå
¶ä»çæ£å¼
è§è
| è§è |
|---|
| ECMAScript® 2027 Internationalization API Specification> # collator-objects> |