我想把阿拉伯数字转换成英文或强制用户只输入英文数字,那么如何做到这一点?即123 =等。
7cjasjjr1#
对于转换数字,你可以简单地写一个这样的函数:
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来限制TextField的输入:
FilteringTextInputFormatter
TextField
TextField(inputFormatters: [ FilteringTextInputFormatter.allow(RegExp("[0-9]")), ])
此TextField仅接受英文数字字符。
x8diyxa72#
我已经在hrk_batteries包中发布了String的localizeDigits()扩展方法。添加包:
hrk_batteries
localizeDigits()
$ dart pub add hrk_batteries
如下所示:localized_digits_example.dart
import 'package:hrk_batteries/hrk_batteries.dart'; void main() { final String arToEnLocalizedString = 'A٠١٢٣٤٥٦٧٨٩Z'.localizeDigits( fromZeroDigit: '\u0660', // fromZeroDigit: '٠', toZeroDigit: '0', ); print(arToEnLocalizedString); // A0123456789Z }
2条答案
按热度按时间7cjasjjr1#
对于转换数字,你可以简单地写一个这样的函数:
但是你也可以使用
FilteringTextInputFormatter
来限制TextField
的输入:此
TextField
仅接受英文数字字符。x8diyxa72#
我已经在
hrk_batteries
包中发布了String的localizeDigits()
扩展方法。添加包:
如下所示:
localized_digits_example.dart