The Intl.Locale.prototype.numberingSystem property is an accessor property that returns the numeral system used by the locale.


A numeral system is a system for expressing numbers. The numberingSystem property helps to represent the different numeral systems used by various countries, regions, and cultures around the world. As with most internationalization schemas, the numeral systems that can be represented in a Locale object by numberingSystem are standardized by Unicode. A table of the standard Unicode numeral systems can be seen below.

Value Description
adlm Adlam digits
ahom Ahom digits
arab Arabic-Indic digits
arabext Extended Arabic-Indic digits
armn Armenian upper case numerals β€” algorithmic
armnlow Armenian lower case numerals β€” algorithmic
bali Balinese digits
beng Bengali digits
bhks Bhaiksuki digits
brah Brahmi digits
cakm Chakma digits
cham Cham digits
cyrl Cyrillic numerals β€” algorithmic
deva Devanagari digits
ethi Ethiopic numerals β€” algorithmic
finance Financial numerals β€” may be algorithmic
fullwide Full width digits
geor Georgian numerals β€” algorithmic
gong Gunjala Gondi digits
gonm Masaram Gondi digits
grek Greek upper case numerals β€” algorithmic
greklow Greek lower case numerals β€” algorithmic
gujr Gujarati digits
guru Gurmukhi digits
hanidays Han-character day-of-month numbering for lunar/other traditional calendars
hanidec Positional decimal system using Chinese number ideographs as digits
hans Simplified Chinese numerals β€” algorithmic
hansfin Simplified Chinese financial numerals β€” algorithmic
hant Traditional Chinese numerals β€” algorithmic
hantfin Traditional Chinese financial numerals β€” algorithmic
hebr Hebrew numerals β€” algorithmic
hmng Pahawh Hmong digits
hmnp Nyiakeng Puachue Hmong digits
java Javanese digits
jpan Japanese numerals β€” algorithmic
jpanfin Japanese financial numerals β€” algorithmic
jpanyear Japanese first-year Gannen numbering for Japanese calendar
kali Kayah Li digits
khmr Khmer digits
knda Kannada digits
lana Tai Tham Hora (secular) digits
lanatham Tai Tham Tham (ecclesiastical) digits
laoo Lao digits
latn Latin digits
lepc Lepcha digits
limb Limbu digits
mathbold Mathematical bold digits
mathdbl Mathematical double-struck digits
mathmono Mathematical monospace digits
mathsanb Mathematical sans-serif bold digits
mathsans Mathematical sans-serif digits
mlym Malayalam digits
modi Modi digits
mong Mongolian digits
mroo Mro digits
mtei Meetei Mayek digits
mymr Myanmar digits
mymrshan Myanmar Shan digits
mymrtlng Myanmar Tai Laing digits
native Native digits
newa Newa digits
nkoo N'Ko digits
olck Ol Chiki digits
orya Oriya digits
osma Osmanya digits
rohg Hanifi Rohingya digits
roman Roman upper case numerals β€” algorithmic
romanlow Roman lowercase numerals β€” algorithmic
saur Saurashtra digits
shrd Sharada digits
sind Khudawadi digits
sinh Sinhala Lith digits
sora Sora_Sompeng digits
sund Sundanese digits
takr Takri digits
talu New Tai Lue digits
taml Tamil numerals β€” algorithmic
tamldec Modern Tamil decimal digits
telu Telugu digits
thai Thai digits
tirh Tirhuta digits
tibt Tibetan digits
traditio Traditional numerals β€” may be algorithmic
vaii Vai digits
wara Warang Citi digits
wcho Wancho digits


Setting the numberingSystem value via the locale string

In the Unicode locale string spec, the values that numberingSystem represents correspond to the key nu. nu is considered a locale string "extension subtag". These subtags add additional data about the locale, and are added to locale identifiers by first adding the -u key. To set the numberingSystem value via the string argument to the Locale constructor, first add the -u extension key. Next, add the -nu extension key to indicate that you are adding a value for numberingSystem. Finally, add the numberingSystem value to the string.

let numberingSystemViaStr = new Intl.Locale("fr-Latn-FR-u-nu-mong");
console.log(numberingSystemStr.numberingSystem); // Prints "mong"

Setting the numberingSystem value via the configuration object argument

The Intl.Locale constructor has an optional configuration object argument, which can be used to pass extension types. Set the numberingSystem property of the configuration object to your desired numberingSystem value and pass it into the constructor.

let numberingSystemViaObj= new Intl.Locale("en-Latn-US", {numberingSystem: "latn"});
console.log(us12hour.numberingSystem); // Prints "latn"


ECMAScript Internationalization API (ECMA-402)

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
numberingSystemChrome Full support 74Edge Full support 79Firefox Full support 75IE No support NoOpera Full support 62Safari No support NoWebView Android Full support 74Chrome Android Full support 74Firefox Android No support NoOpera Android Full support 53Safari iOS No support NoSamsung Internet Android Full support 11.0nodejs Full support 12.0.0
Full support 12.0.0
Notes Before version 13.0.0, only the locale data for en-US is available by default. See the Locale() constructor for more details.


Full support Β 
Full support
No support Β 
No support
See implementation notes.
See implementation notes.

See also