Flutter中如何让TextField仅允许输入数字和+符号?
解决TextField仅允许数字和+符号的问题
你当前的FilteringTextInputFormatter使用的正则[0-9]只匹配0-9的数字,所以无法输入+符号。只需要调整正则表达式,把+纳入允许的字符范围即可:
基础实现(允许任意位置的数字和+)
如果不需要限制+的出现位置,直接在正则里加入+:
TextField( inputFormatters: [ FilteringTextInputFormatter.allow( RegExp("[0-9+]"), ), ], ),
更严谨的实现(仅允许+出现在开头,比如国际区号场景)
如果希望+只能作为开头的可选符号,避免输入多个+或者在数字中间插入+,可以使用更精准的正则:
TextField( inputFormatters: [ FilteringTextInputFormatter.allow( RegExp("^[+]?[0-9]*"), ), ], ),
这个正则的含义:
^匹配字符串开头[+]?允许开头有一个可选的+符号[0-9]*后续可以跟任意数量的数字
内容的提问来源于stack exchange,提问作者Esraa Hamada
相关产品推荐
相关产品推荐

