Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 106 из 114 · 8 мин
Intl.ListFormat, Intl.DisplayNames, Intl.Collator, Intl.Segmenter, Intl.getCanonicalLocales и Intl.supportedValuesOf.
Хочу «Блокнот, пенал и ластик», а не «Блокнот,пенал,ластик».
Intl.ListFormat склеит список по правилам языка — с запятыми и «и».
Intl.ListFormatnew Intl.ListFormat("ru", { type: "conjunction" }).format([...]) → «Блокнот, пенал и ластик»; disjunction — «или»; formatToParts — по частям.const lf = new Intl.ListFormat("ru", { type: "conjunction" });
console.log(lf.format(["блокнот", "пенал", "ластик"]), new Intl.ListFormat("ru", { type: "disjunction" }).format(["S", "M", "L"]), lf.formatToParts(["a", "b"]).length);Intl.DisplayNames · of()new Intl.DisplayNames("ru", { type: "currency" }).of("JPY") → «японская иена»; типы: language, region, script, currency, calendar.console.log(new Intl.DisplayNames("ru", { type: "region" }).of("JP"), new Intl.DisplayNames("ru", { type: "currency" }).of("EUR"), new Intl.DisplayNames("ru", { type: "language" }).of("en"));Intl.Collator · compare()new Intl.Collator("ru").compare — функция для sort; настройки sensitivity, numeric: true («2» < «10»). Быстрее localeCompare при многих сравнениях.const col = new Intl.Collator("ru", { numeric: true });
console.log(["Комната 10", "комната 2", "Ёлка"].sort(col.compare));Intl.Segmenter · segment()new Intl.Segmenter("ru", { granularity: "word" }).segment(text) — перебор слов, предложений или символов (графем) по правилам языка.const seg = new Intl.Segmenter("ru", { granularity: "word" });
const words = [...seg.segment("Лучший блокнот в городе!")].filter((s) => s.isWordLike);
console.log(words.length, [...new Intl.Segmenter("ru", { granularity: "grapheme" }).segment("👨👩👧")].length);Intl.getCanonicalLocales() · Intl.supportedValuesOf()getCanonicalLocales(["RU-ru"]) → ["ru-RU"] — правильная запись тегов; supportedValuesOf("currency") — список поддерживаемых валют, календарей, поясов.console.log(Intl.getCanonicalLocales(["RU-ru", "EN-us"]), Intl.supportedValuesOf("currency").includes("RUB"));Слова считай Intl.Segmenter, а не split(" "): язык знает лучше, где границы слов.
Напиши orderText(items) — список через Intl.ListFormat("ru", { type: "conjunction" }), и wordCount(text) — число слов через Intl.Segmenter с granularity: "word" (учитывай isWordLike).
Выберите один ответ.
Что даёт Intl.Collator("ru", { numeric: true })?
Проверяем состояние обучения…