[英]floating value formatting in TextFormField in Flutter
我想对用户输入添加限制并强制输入小数值。 但是如果我输入 .5 它会导致无效的输入异常,但 0.5 可以正常工作。 但用户可以键入 0.5 而不是 0.5。 那么有没有办法呢。 这是我的代码:
inputFormatters: [
FilteringTextInputFormatter.allow(RegExp(r"[0-9.]")),
TextInputFormatter.withFunction((oldValue, newValue) {
try {
final text = newValue.text;
if (text.isNotEmpty) double.parse(text);
return newValue;
} catch (e) {}
return oldValue;
}),
],
那是因为.5
无法parse-able to double
您可以添加此行if(text.startsWith('.')) text = '0$text';
在 if 语句之前,所以代码变为:
try {
String text = newValue.text;
if (text.startsWith('.')) text = '0$text';
if (text.isNotEmpty) double.parse(text);
return newValue;
} catch (e) {}
return oldValue;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.