网站搜索

javascript - 在 Angular 中获取不同语言数字的千位分隔符


在英语区域,数字看起来像这样:111,111,222.00,所以千位分隔符是逗号,小数分隔符是点。例如,在德语中,同样的数字看起来像111.111.222,00,因此千位分隔符和小数分隔符是相反的。有没有办法根据区域设置找到千位分隔符?

我在 Angular 中找到了 https://angular.io/api/common/getLocaleNumberFormat getLocaleNumberFormat() 函数,但我找不到如何使用它,因为它总是返回 en 语言环境的格式

答案#1

使用 getLocaleNumberSymbol()。

getLocaleNumberSymbol(locale: string, symbol: NumberSymbol): string
import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';

// returns thousands sepator, comma (,) in this case:
getLocaleNumberSymbol('en-US', NumberSymbol.CurrencyGroup)
// returns decimal separator, dot (.) in this case:
getLocaleNumberSymbol('en-US', NumberSymbol.CurrencyDecimal)

如果你的区域设置不同于 en-US,你应该将你的区域数据导入到 AppModule 中:

import '@angular/common/locales/global/en-GB';

@NgModule({...})
export class AppModule {
}

可用语言环境列表可在此处找到:https://github.com/angular/angular/tree/master/packages/common/locales

答案#2

我通常在我的 app.module 中设置全局区域设置。

应用程序.模块.ts

import { registerLocaleData } from '@angular/common';
import localeHe from '@angular/common/locales/he';

registerLocaleData(localeHe, 'he');

@NgModule({ // ....

Angular 国际化文档