在Flutter TextField
上,我有以下FilteringTextInputFormatter
:FilteringTextInputFormatter.allow(RegExp(r"^\d+\.?\d{1,2}"));
它试图匹配一个十进制数最多两个位置,但我不能输入任何数字到TextField
。
https://regexr.com/7fpho
在Flutter TextField
上,我有以下FilteringTextInputFormatter
:FilteringTextInputFormatter.allow(RegExp(r"^\d+\.?\d{1,2}"));
它试图匹配一个十进制数最多两个位置,但我不能输入任何数字到TextField
。
https://regexr.com/7fpho
3条答案
按热度按时间ipakzgxi1#
完成后,不要基于以整个字符串为目标的正则表达式进行筛选。记住,要输入“hello world”,在某些时候,你必须输入“hello”和一个空格,这样你的正则表达式在最后不需要空格,在过滤器中会失败。
相反,在最终验证中使用正则表达式匹配。过滤器里没有。
ffvjumwh2#
试试这个
c2e8gylq3#
在搞乱RegExr之后,我发现我想要的是:
RegExp(r"^\d{1,4}(\.\d{0,2})?")
此表达式允许四位数,小数点后两位。