gpt4 book ai didi

validation - Flutter:验证 Radix 10 数字

转载 作者:IT王子 更新时间:2023-10-29 06:44:17 24 4
gpt4 key购买 nike

我在我的 iPhone 上测试数字验证。这是我的代码片段:

child: new TextFormField(

controller: sales,
keyboardType: TextInputType.numberWithOptions(decimal: true),
decoration: const InputDecoration(
filled: true,
fillColor: CupertinoColors.white,
border: const OutlineInputBorder(),
labelText: ‘Sale amount’,
suffixText: ‘ZAR’,
suffixStyle:
const TextStyle(color: Colors.green)),
maxLines: 1,
validator: (val) {
if (val.isEmpty ) return 'Amount is required';
if (val.contains(",")) {
sales.text = val.replaceAll(new RegExp(r","), ".");
}
if (sales.text.indexOf(".") != sales.lastIndexOf(".")) {
return 'Enter valid amount.';
}
else
return null;
},
),

现在,我正在用这个数字 25、52、85 测试验证 - 这显然不是一个有效数字,但它有可能在 iPhone 的数字软键盘上被允许。 (同样有趣的是,在美国 iPhone 上,我们在数字软键盘上使用逗号而不是句号,如果必须存储 double ,则必须将逗号转换为句号,我在代码的验证方法中完成了这一点以上)

enter image description here

现在,当我单击“完成”来验证表单时,日志中出现错误,它告诉我这是一个无效的 Radix 10 数字。换句话说,Flutter 告诉我不能存在其中包含两个逗号/句号的 double 。

所以为了解决这个问题,我在验证下写了这段代码来测试数字是否包含超过 2 个句号:

if (sales.text.indexOf(".") != sales.lastIndexOf(".")) {
return 'Enter valid amount.';
}

但是,我发现这很麻烦,想知道是否有更优雅的测试方法?如何在 flutter 中轻松验证数字是否有效?

最佳答案

.parse 是你的人。 double.parse 如果您需要小数,或者 int.parse 如果您不需要。

检查这个other StackOverFlow answer用例子解释这一点

关于validation - Flutter:验证 Radix 10 数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50319534/

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