Baseline Widely available
localeCompare()
ã¡ã½ããã¯ãåç
§æååãã½ã¼ãé ã§æå®ãããæååã®åãå¾ããã¾ãã¯åãããç¤ºãæ°å¤ãè¿ãã¾ããIntl.Collator
API ã«å¯¾å¿ãã¦ããå®è£
ã§ã¯ããã®ã¡ã½ããã¯åã« Intl.Collator
ãå¼ã³åºãã¾ãã
大éã®æååãæ¯è¼ããå ´åãä¾ãã°å·¨å¤§ãªé
åãä¸¦ã¹æ¿ããã¦ããæã¯ãIntl.Collator
ãªãã¸ã§ã¯ããçæãã¦ãããæä¾ãã compare()
ã¡ã½ããã使ç¨ããã»ããããã§ãããã
const a = "réservé"; // With accents, lowercase
const b = "RESERVE"; // No accents, uppercase
console.log(a.localeCompare(b));
// Expected output: 1
console.log(a.localeCompare(b, "en", { sensitivity: "base" }));
// Expected output: 0
æ§æ
localeCompare(compareString)
localeCompare(compareString, locales)
localeCompare(compareString, locales, options)
弿°
locales
㨠options
弿°ã¯ããã®é¢æ°ã®åä½ãã«ã¹ã¿ãã¤ãºããã¢ããªã±ã¼ã·ã§ã³ãæ¸å¼åã®ç¿æ
£ã§ä½¿ç¨ããè¨èªãæå®ãããã¨ãã§ãã¾ãã
Intl.Collator
API ã«å¯¾å¿ãã¦ããå®è£
ã§ã¯ããããã®å¼æ°ã¯ã¡ããã© Intl.Collator()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã®å¼æ°ã«å¯¾å¿ãã¾ããIntl.Collator
ã®å¯¾å¿ã®ãªãå®è£
ã§ã¯ã両æ¹ã®å¼æ°ãç¡è¦ããæ¯è¼ãè¡ãã¨å®å
¨ã«å®è£
ä¾åã®å¤ãè¿ãã¾ããä¸è²«æ§ããããã¨ã ããå¿
è¦ã§ãã
compareString
ãã®æååã¨æ¯è¼ãããæååã§ãããã¹ã¦ã®å¤ã¯æååã«å¤æããã¾ãã®ã§ãçç¥ããã undefined
ãæ¸¡ãããããã¨ãlocaleCompare()
㯠"undefined"
ã¨ããæååã¨æ¯è¼ãè¡ãã¾ããããã¯ããããæãã¨ããã§ã¯ãªãã§ãããã
locales
çç¥å¯
BCP 47 è¨èªã¿ã°ã®æååãã¾ãã¯ãã®ãããªæååã®é
åã§ããIntl.Collator()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã® locales
弿°ã«å¯¾å¿ãã¾ãã
Intl.Collator
ã®å¯¾å¿ããªãå®è£
ã§ã¯ããã®å¼æ°ã¯ç¡è¦ãããæ®éã¯ãã¹ãã®ãã±ã¼ã«ã使ç¨ããã¾ãã
options
çç¥å¯
åºåå½¢å¼ã調æ´ãããªãã¸ã§ã¯ãã§ããIntl.Collator()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã® options
弿°ã«å¯¾å¿ãã¾ãã
Intl.Collator
ã®å¯¾å¿ããªãå®è£
ã§ã¯ããã®å¼æ°ã¯ç¡è¦ããã¾ãã
Intl.Collator()
ã³ã³ã¹ãã©ã¯ã¿ã¼ ã®è¨äºã«ãlocales
ããã³ options
弿°ã®è©³ç´°ã¨ä½¿ãæ¹ãæ¸ããã¦ãã¾ãã
referenceStr
ã compareString
ããåã«åºç¾ãããã®ã§ããå ´åã¯è² ã®æ°ã§ãã referenceStr
ã compareString
ããå¾ã«åºç¾ãããã®ã§ããå ´åã¯æ£ã®æ°ã§ããçããå ´å㯠0
ã§ãã
Intl.Collator
ã®å®è£
ã§ã¯ããã㯠new Intl.Collator(locales, options).compare(referenceStr, compareString)
ã¨ç価ã§ãã
referenceStr
ã compareString
ããåã«æ¥ãããå¾ã«æ¥ããããããã¯çããããç¤ºãæ´æ°ãè¿ãã¾ãã
referenceStr
ã compareString
ããåã«åºç¾ãããã®ã§ããå ´åã¯è² ã®æ°referenceStr
ã compareString
ããå¾ã«åºç¾ãããã®ã§ããå ´åã¯æ£ã®æ°0
è¦å: è¿å¤ãæ£ç¢ºãª -1
ã¾ã㯠1
ã§ããã¨æããªãã§ãã ããã
çµæã®è² ã®æ´æ°ã¨æ£ã®æ´æ°ã¯ããã©ã¦ã¶ã¼éï¼ããã³ãã©ã¦ã¶ã¼ã®ãã¼ã¸ã§ã³éï¼ã§ç°ãªãã¾ãããã㯠W3C ã®ä»æ§ãè² ã®å¤ãæ£ã®å¤ãã¨ã ãæå®ãã¦ããããã§ãããã©ã¦ã¶ã¼ã«ãã£ã¦ã¯ -2
ã 2
ãããããã¯ä»ã®è² ã®å¤ãæ£ã®å¤ãè¿å´ããããããã¾ããã
// æå "a" 㯠"c" ã¯è² ã®æ°ã«ãªãã¾ã
"a".localeCompare("c"); // -2 ã -1 ï¼ãããã¯ã¾ãå¥ã®è² ã®æ°ï¼
// åèª "check" ã¯ã¢ã«ãã¡ãããé ã« "against" ããå¾ããªã®ã§æ£ã®æ°ã«ãªãã¾ã
"check".localeCompare("against"); // 2 ã 1 ï¼ãããã¯ã¾ãå¥ã®æ£ã®æ°ï¼
// "a" ã¨"a" ã¯çããã®ã§èªç¶æ° 0 ã«ãªãã¾ã
"a".localeCompare("a"); // 0
é
åã®ä¸¦ã¹æ¿ã
localeCompare()
ã§ã大æåå°æåã®éããç¡è¦ããé
åã®ä¸¦ã¹æ¿ããã§ãã¾ãã
const items = ["réservé", "Premier", "Cliché", "communiqué", "café", "Adieu"];
items.sort((a, b) => a.localeCompare(b, "fr", { ignorePunctuation: true }));
// ['Adieu', 'café', 'Cliché', 'communiqué', 'Premier', 'réservé']
æ¡å¼µå¼æ°ããã©ã¦ã¶ã¼ã対å¿ãã¦ããã調ã¹ã
locales
㨠options
ã®å¼æ°ã¯ãã¾ã ãã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å¯¾å¿ãã¦ããããã§ã¯ããã¾ããã
å®è£
ããããã«å¯¾å¿ãã¦ããã調ã¹ãã«ã¯ã弿° "i"
ï¼ä¸æ£ãªè¨èªã¿ã°ãé¤å¤ãããè¦ä»¶ï¼ã使ç¨ãã¦ãä¾å¤ RangeError
ã調ã¹ã¦ãã ããã
function localeCompareSupportsLocales() {
try {
"foo".localeCompare("bar", "i");
} catch (e) {
return e.name === "RangeError";
}
return false;
}
locales ã®ä½¿ç¨
localeCompare()
ã«ãã£ã¦å¾ãããçµæã¯è¨èªéã§ç°ãªãã¾ããã¢ããªã±ã¼ã·ã§ã³ã®ã¦ã¼ã¶ã¼ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ä½¿ç¨ãããè¨èªã®æ´åé ãå¾ãã«ã¯ã locales
弿°ã使ç¨ãã¦ãã®è¨èªï¼ããã¦ã§ããã°ããã¤ãã®ä»£æ¿è¨èªï¼ãæå®ãã¦ãããã¨ã確ããã¦ä¸ããã
console.log("ä".localeCompare("z", "de")); // è² ã®æ°: ãã¤ãèªã§ ä 㯠a ã«åé¡ããã
console.log("ä".localeCompare("z", "sv")); // æ£ã®æ°: ã¹ã¦ã§ã¼ãã³èªã§ã¯ ä 㯠z ã®å¾ã«ãªã
options ã®ä½¿ç¨
localeCompare()
ã«ãã£ã¦å¾ãããçµæã¯ãoptions
弿°ã使ç¨ãããã¨ã«ãã£ã¦ã«ã¹ã¿ãã¤ãºã§ãã¾ãã:
// ãã¤ãèªã§ã¯ ä ã® base letter 㯠a
console.log("ä".localeCompare("a", "de", { sensitivity: "base" })); // 0
// ã¹ã¦ã§ã¼ãã³èªã§ã¯ ä 㨠a 㯠base letter ãç°ãªã
console.log("ä".localeCompare("a", "sv", { sensitivity: "base" })); // æ£ã®å¤
æ°å¤ã®ä¸¦ã¹æ¿ã
// æ¢å®ã§ã¯ "2" > "10"
console.log("2".localeCompare("10")); // 1
// options ã使ç¨ããæ°å¤
console.log("2".localeCompare("10", undefined, { numeric: true })); // -1
// ãã±ã¼ã«ã¿ã°ã使ç¨ããæ°å¤
console.log("2".localeCompare("10", "en-u-kn-true")); // -1
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4