Intl.Locale.prototype.numeric

Baseline 已广泛支持

此功能已成熟,并可在许多设备和浏览器版本上使用。自 2020 年 9 月起,所有浏览器均已提供此功能。

numeric 访问器属性,属于 Intl.Locale 实例,用于指示该区域设置是否对数字字符有特殊的排序处理。

描述

caseFirst 类似,numeric 表示对区域设置所使用的排序规则的修改。numeric 是一个布尔值,这意味着它可以是 truefalse。如果 numeric 被设置为 false,则在排序字符串时不会对数字值进行特殊处理。如果 numeric 被设置为 true,则在排序字符串时,该区域设置会考虑数字字符。这种特殊的数字处理意味着十进制数字序列将被作为数字进行比较。例如,字符串 "A-21" 将被认为小于 "A-123"。

numeric 属性的值在构造时设置,可以通过区域设置标识符中的 kn 键,或通过 Intl.Locale() 构造函数的 numeric 选项来设置。如果两者都存在,则后者优先;如果两者都不存在,则该属性的值为 undefined

numeric 的设置访问器为 undefined。您不能直接更改此属性。

示例

与其他区域设置子标签一样,可以通过区域设置字符串,或通过传递给构造函数的配置对象参数,将 numeric 值添加到 Intl.Locale 对象中。

通过区域设置字符串添加 numeric

Unicode 区域设置字符串规范中,numeric 是一个“扩展子标签”。这些子标签提供了关于区域设置的附加数据,并通过 -u 扩展键添加到区域设置标识符中。要将 numeric 值添加到传递给 Intl.Locale() 构造函数的初始区域设置标识符字符串中,首先添加 -u 扩展键(如果不存在)。接下来,添加 -kn 扩展以指示您正在为 numeric 添加值。最后,添加 numeric 值。如果您想将 numeric 设置为 true,添加 kn 键就足够了。要将值设置为 false,您必须通过在 kn 键后添加 "false" 来指定。

js
const locale = new Intl.Locale("fr-Latn-FR-u-kn-false");
console.log(locale.numeric); // "false"

通过配置对象参数添加 numeric

Intl.Locale() 构造函数有一个可选的配置对象参数,其中可以包含多种扩展类型,包括 numeric。将配置对象的 numeric 属性设置为您想要的 numeric 值,然后将其传递给构造函数。

js
const locale = new Intl.Locale("en-Latn-US", { numeric: true });
console.log(locale.numeric); // "true"

规范

规范
ECMAScript® 2026 国际化 API 规范
# sec-Intl.Locale.prototype.numeric

浏览器兼容性

另见