首页 > 解决方案 > 如何将数字从一种语言转换为英语或强制用户只用英语书写?

问题描述

我想将阿拉伯数字转换成英文或强制用户只输入英文数字,​​那么该怎么做呢?即 123 = ١٢٣ 等等。

标签: flutterdart

解决方案


要转换数字,您可以简单地编写如下函数:

Map persianNumberMap = {
  '۰': '0',
  '۱': '1',
  '۲': '2',
  '۳': '3',
  '۴': '4',
  '۵': '5',
  '۶': '6',
  '۷': '7',
  '۸': '8',
  '۹': '9'
};
    
String convertPersianNumberToEnglish(String number) {
   String converted = number;
   persianNumberMap.forEach((key, value) => converted.replaceAll(key, value));
   return converted;
}

但您也可以FilteringTextInputFormatter用来限制 a 的输入TextField

TextField(inputFormatters: [
     FilteringTextInputFormatter.allow(RegExp("[0-9]")),
])

TextField将只接受英文数字字符。


推荐阅读