The Intl.ListFormat object is a constructor for objects that enable language-sensitive list formatting.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Constructor
Intl.ListFormat()- Creates a new
ListFormatobject.
Static methods
Intl.ListFormat.supportedLocalesOf()- Returns an array containing those of the provided locales that are supported without having to fall back to the runtime's default locale.
Instance methods
Intl.ListFormat.prototype.format()- Returns a language-specific formatted string representing the elements of the list.
Intl.ListFormat.prototype.formatToParts()- Returns an array of objects representing the different components that can be used to format a list of values in a locale-aware fashion.
Examples
Using format
The following example shows how to create a List formatter using the English language.
const list = ['Motorcycle', 'Bus', 'Car'];
console.log(new Intl.ListFormat('en-GB', { style: 'long', type: 'conjunction' }).format(list));
// > Motorcycle, Bus and Car
console.log(new Intl.ListFormat('en-GB', { style: 'short', type: 'disjunction' }).format(list));
// > Motorcycle, Bus or Car
console.log(new Intl.ListFormat('en-GB', { style: 'narrow', type: 'unit' }).format(list));
// > Motorcycle Bus Car
Using formatToParts
The following example shows how to create a List formatter returning formatted parts
const list = ['Motorcycle', 'Bus', 'Car'];
console.log(new Intl.ListFormat('en-GB', { style: 'long', type: 'conjunction' }).formatToParts(list));
// [ { "type": "element", "value": "Motorcycle" },
// { "type": "literal", "value": ", " },
// { "type": "element", "value": "Bus" },
// { "type": "literal", "value": ", and " },
// { "type": "element", "value": "Car" } ];
Specifications
| Specification |
|---|
| Intl.ListFormat The definition of 'ListFormat' in that specification. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ListFormat | Chrome Full support 72 | Edge No support No | Firefox Full support 78 | IE No support No | Opera Full support 60 | Safari No support No | WebView Android Full support 72 | Chrome Android Full support 72 | Firefox Android No support No | Opera Android Full support 51 | Safari iOS No support No | Samsung Internet Android No support No | nodejs
Full support
12.0.0
|
ListFormat() constructor | Chrome Full support 72 | Edge No support No | Firefox Full support 78 | IE No support No | Opera Full support 60 | Safari No support No | WebView Android Full support 72 | Chrome Android Full support 72 | Firefox Android No support No | Opera Android Full support 51 | Safari iOS No support No | Samsung Internet Android No support No | nodejs
Full support
13.0.0
|
format | Chrome Full support 72 | Edge No support No | Firefox Full support 78 | IE No support No | Opera Full support 60 | Safari No support No | WebView Android Full support 72 | Chrome Android Full support 72 | Firefox Android No support No | Opera Android Full support 51 | Safari iOS No support No | Samsung Internet Android No support No | nodejs
Full support
12.0.0
|
formatToParts | Chrome Full support 72 | Edge No support No | Firefox Full support 78 | IE No support No | Opera Full support 60 | Safari No support No | WebView Android Full support 72 | Chrome Android Full support 72 | Firefox Android No support No | Opera Android Full support 51 | Safari iOS No support No | Samsung Internet Android No support No | nodejs
Full support
12.0.0
|
resolvedOptions | Chrome Full support 72 | Edge No support No | Firefox Full support 78 | IE No support No | Opera Full support 60 | Safari No support No | WebView Android Full support 72 | Chrome Android Full support 72 | Firefox Android No support No | Opera Android Full support 51 | Safari iOS No support No | Samsung Internet Android No support No | nodejs
Full support
12.0.0
|
supportedLocalesOf | Chrome Full support 72 | Edge No support No | Firefox Full support 78 | IE No support No | Opera Full support 60 | Safari No support No | WebView Android Full support 72 | Chrome Android Full support 72 | Firefox Android No support No | Opera Android Full support 51 | Safari iOS No support No | Samsung Internet Android No support No | nodejs
Full support
13.0.0
|
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- See implementation notes.
- See implementation notes.
