FilteringTextInputFormatter -如何创建RegExp以防止用户键入多个句点、键入逗号、在零后面键入除句点以外的数字等。
osh3o9ms1#
试试这个:
TextField( decoration: InputDecoration( labelText: 'Enter a number:', ), keyboardType: TextInputType.numberWithOptions(decimal: true), inputFormatters: [ FilteringTextInputFormatter( RegExp(r'^\d*\.?\d{0,1}$'), allow: true), ], ),
zynd9foi2#
解决了。
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.', ), ];
2条答案
按热度按时间osh3o9ms1#
试试这个:
zynd9foi2#
解决了。