颤动:到期日期文本字段
flutter : expiry date text field
我们如何实现信用卡过期日期的文本字段格式化程序,如下所示MM/YY
17 天后,但我可以实现这个:
class CardExpirationFormatter extends TextInputFormatter {
@override
TextEditingValue formatEditUpdate(
TextEditingValue oldValue, TextEditingValue newValue) {
final newValueString = newValue.text;
String valueToReturn = '';
for (int i = 0; i < newValueString.length; i++) {
if (newValueString[i] != '/') valueToReturn += newValueString[i];
var nonZeroIndex = i + 1;
final contains = valueToReturn.contains(RegExp(r'\/'));
if (nonZeroIndex % 2 == 0 &&
nonZeroIndex != newValueString.length &&
!(contains)) {
valueToReturn += '/';
}
}
return newValue.copyWith(
text: valueToReturn,
selection: TextSelection.fromPosition(
TextPosition(offset: valueToReturn.length),
),
);
}
}
我们如何实现信用卡过期日期的文本字段格式化程序,如下所示MM/YY
17 天后,但我可以实现这个:
class CardExpirationFormatter extends TextInputFormatter {
@override
TextEditingValue formatEditUpdate(
TextEditingValue oldValue, TextEditingValue newValue) {
final newValueString = newValue.text;
String valueToReturn = '';
for (int i = 0; i < newValueString.length; i++) {
if (newValueString[i] != '/') valueToReturn += newValueString[i];
var nonZeroIndex = i + 1;
final contains = valueToReturn.contains(RegExp(r'\/'));
if (nonZeroIndex % 2 == 0 &&
nonZeroIndex != newValueString.length &&
!(contains)) {
valueToReturn += '/';
}
}
return newValue.copyWith(
text: valueToReturn,
selection: TextSelection.fromPosition(
TextPosition(offset: valueToReturn.length),
),
);
}
}