The Intl.PluralRules object enables plural-sensitive formatting and plural-related language rules.



Creates a new Intl.PluralRules object.

Static methods


Returns an array containing those of the provided locales that are supported without having to fall back to the runtime's default locale.

Instance properties

These properties are defined on Intl.PluralRules.prototype and shared by all Intl.PluralRules instances.


The constructor function that created the instance object. For Intl.PluralRules instances, the initial value is the Intl.PluralRules constructor.


The initial value of the @@toStringTag property is the string "Intl.PluralRules". This property is used in Object.prototype.toString().

Instance methods


Returns a new object with properties reflecting the locale and collation options computed during initialization of the object.

Returns a string indicating which plural rule to use for locale-aware formatting.


This method receives two values and returns a string indicating which plural rule to use for locale-aware formatting.


Using locales

This example shows some of the variations in localized plural rules. In order to get the format of the language used in the user interface of your application, make sure to specify that language (and possibly some fallback languages) using the locales argument:

// Arabic has different plural rules

new Intl.PluralRules("ar-EG").select(0);
// → 'zero'
new Intl.PluralRules("ar-EG").select(1);
// → 'one'
new Intl.PluralRules("ar-EG").select(2);
// → 'two'
new Intl.PluralRules("ar-EG").select(6);
// → 'few'
new Intl.PluralRules("ar-EG").select(18);
// → 'many'


ECMAScript Internationalization API Specification
# pluralrules-objects

Browser compatibility

BCD tables only load in the browser

See also