gpt4 book ai didi

Flutter 文本字段允许用户仅在给定范围内插入数字

转载 作者:行者123 更新时间:2023-12-05 01:52:43 26 4
gpt4 key购买 nike

我会强制只插入 1-20 之间的值。如果用户输入 2 没关系,但如果用户在 2 (21) 之后输入 1,则文本字段将不允许在 2 之后输入 1。是否有任何正则表达式。

我这样试过,但它只允许数字

inputFormatters: [FilteringTextInputFormatter.allow(RegExp('[1-9,.,:]'))],

最佳答案

试试下面的代码希望对你有帮助。在下面的代码中,如果您输入的值超过 20 个,则光标位于第一个位置。

创建一个类并声明它的最小值和最大值。

class LimitRange extends TextInputFormatter {
LimitRange(
this.minRange,
this.maxRange,
) : assert(
minRange < maxRange,
);

final int minRange;
final int maxRange;

@override
TextEditingValue formatEditUpdate(
TextEditingValue oldValue, TextEditingValue newValue) {
var value = int.parse(newValue.text);
if (value < minRange) {
print('value print in between 1 - 20');
return TextEditingValue(text: minRange.toString());
} else if (value > maxRange) {
print('not more 20');
return TextEditingValue(text: maxRange.toString());
}
return newValue;
}
}

您的小部件:

TextField(
keyboardType: TextInputType.number,
inputFormatters: [
LengthLimitingTextInputFormatter(2),
LimitRange(1, 20),
],
),


关于Flutter 文本字段允许用户仅在给定范围内插入数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71507522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com