Intl.ListFormat S4
- Stage: Stage 4
- Status: Finished
- ECMAScript edition: ES2021
- Synchronized: Aug 28, 2026
- 中文译文 · Source repository
This proposal introduces the Intl.ListFormat constructor, which enables language-sensitive formatting of lists. It provides format and formatToParts methods for controlling output style and conjunction type.
The README below comes from the upstream repository and may contain outdated stage or status metadata. Use the proposal details above as the current source of truth.
Intl.ListFormat API Specification
Overview
The Intl.ListFormat object is a constructor for objects that enable language-sensitive list formatting.
Usage example
The following example shows how to create a formatted list using the English language.
Implementation Status
Stage 4
Implementation Progress
- Shipped in Chrome 72
- Shipped behind the flag in Firefox 71
- Polyfill: https://github.com/zbraniecki/IntlListFormat ,
- Polyfill: https://github.com/wessberg/intl-list-format
- Browser Compatibility
Backpointers
- https://github.com/tc39/ecma402/issues/33
- http://cldr.unicode.org/translation/lists
- https://unicode.org/reports/tr35/tr35-general.html#ListPatterns
Authors
- Zibi Braniecki (@zbraniecki)
Reviewers
- Jamund Ferguson (@xjamundx)
- Daniel Ehrenberg (@littledan)
Informative
This proposal is based on the LDML spec, List Patterns:
Proposal
Spec
You can view the spec text.
API
Intl.ListFormat([locales[, options]])
The Intl.ListFormat object is a constructor for objects that enable language-sensitive list formatting.
locales
Optional. A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the Intl page.
options
Optional. An object with some or all of the following properties:
-
localeMatcher
The locale matching algorithm to use. Possible values are "lookup" and "best fit"; the default is "best fit". For information about this option, see the Intl page.
-
style
The length of the formated message. Possible values are: "long" (default, e.g., A, B, and C); "short" or "narrow" (e.g., A, B,C). when style is narrow, unit is the only allowed value for the type option.
-
type
The format of output message. Possible values are "conjunction" that stands for "and"-based lists (default, e.g., A, B, and C), or "disjunction" that stands for "or"-based lists (e.g., A, B, or C). "unit" stands for lists of values with units (e.g., 5 pounds, 12 ounces).
Intl.ListFormat.prototype.format(list)
The Intl.ListFormat.prototype.format method formats a list according to the locale and formatting options of this Intl.ListFormat object.
Example
Intl.ListFormat.prototype.formatToParts(list)
The Intl.ListFormat.prototype.formatToParts() method is a version of the format method which it returns an array of objects which represent "parts" of the object, separating the formatted list into its constituent parts and separating it from other surrounding text.