我使用Angular Decimal和Date管道来显示格式化为用户(浏览器)语言环境的数字和日期 .
<div>
Issued at: {{contact.date_issued | date }}
Amount: {{contact.total_amount | number : '1.2-2'}}
</div>
<!-- output:
Issued at: 14. 5. 2018
Amount: 1 200,99
-->
但是,我需要相反的功能 - 使用用户区域设置将字符串从输入转换为数字 . 据我所知,Angular仍然没有任何内置函数 . 所以,我为此构建了自定义函数:
<input class="form-control" type="text" [ngModel]="contact.total_amount | number"
(ngModelChange)="contact.total_amount=myNumberConvert($event)" >
<div>
Issued at: {{contact.date_issued | date }}
Amount: {{contact.total_amount | number : '1.2-2' }}
</div>
<!-- output:
Issued at: 14. 5. 2018
Amount: 1 200,99
-->
在 myNumberConvert
中我做了简单的替换,将字符串格式化为默认的JavaScript数字格式(1200.99),然后是Number.parse(..):
myNumberConvert(input: string) : number {
// I need to convert "1 200,99" to "1200.99"
// ' ' is thousands separator
input = input.replace(' ', '');
// ',' is decimal separator
input = input.replace(',', '.');
return Number.parse(input);
}
两个分隔符现在都是硬编码的,我想从用户(浏览器)语言环境中替换它们,比如 . 如何从区域设置获取这些信息?
1 /将Locale注入指令/类
2 / Locale是否包含以下信息:
-
小数点分隔符
-
千位分隔符
-
日期格式等..
谢谢!