颤动| TextField - 如何为有效的双精度值创建正则表达式?

问题描述 投票:0回答:3

FilteringTextInputFormatter - 如何创建 RegExp 以防止用户输入多个句点、输入逗号、输入除句点之外的零后的数字等。

regex flutter textfield
3个回答
0
投票

试试这个:

TextField(
                      decoration: InputDecoration(
                        labelText: 'Enter a number:',
                      ),
                      keyboardType:
                          TextInputType.numberWithOptions(decimal: true),
                      inputFormatters: [
                        FilteringTextInputFormatter(
                            RegExp(r'^\d*\.?\d{0,1}$'),
                            allow: true),
                      ],
                    ),

0
投票

已解决。

List<TextInputFormatter>? inputFormatters = [
  FilteringTextInputFormatter.allow(
    RegExp(r'(^\d*\.?\d*)'),
  ),

  FilteringTextInputFormatter.deny(
    RegExp(r'\.\.+'), 
    replacementString: '.',
  ),

  FilteringTextInputFormatter.deny(
    RegExp(r'^\.'), 
    replacementString: '0.',
  ),

  FilteringTextInputFormatter.deny(
    RegExp(r'\d+-'), 
  ),

  FilteringTextInputFormatter.deny(
    RegExp(r'\.-'),
    replacementString: '.',
  ),

  FilteringTextInputFormatter.deny(
    RegExp(r'-\.+'),
  ),

  FilteringTextInputFormatter.deny(
    RegExp(r'^0\d+'),
    replacementString: '0.',
  ),
];

0
投票

您可以使用这个套餐来获得您需要的东西

© www.soinside.com 2019 - 2024. All rights reserved.