dart 如何确保textformfield输入的是一个数字(正或负或双精度)

j2cgzkjk  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(127)

当我输入时,我遇到将用户输入转换为双示例的问题,我遇到-3\f25 FormatException a 3(格式异常:无效的double -)。我该如何处理这个问题?此外,我该如何防止用户输入2 - or .(3.3.3或3- or --3),因为这也会导致double.parse()错误。提前感谢!

TextFormField(
          inputFormatters: [FilteringTextInputFormatter.allow(RegExp('[0-9.-]')),],
          keyboardType: TextInputType.number,
          onChanged:(value) {
            setState(() {
              fieldPointX = double.parse(value);
            });
          },
          decoration: InputDecoration(
            border: OutlineInputBorder(),
            labelText: 'X'
          ),

        ),
osh3o9ms

osh3o9ms1#

尝试在TextFormField小部件中使用此regExp

TextFormField(
  keyboardType: const TextInputType.numberWithOptions(
    signed: true,
    decimal: true,
  ),
  inputFormatters: [
    FilteringTextInputFormatter.allow(
        RegExp(r'^-?\d*.?\d*')),
  ],
),

相关问题