我认为这个问题的主要原因是过滤文本输入格式中的正则表达式。但我不知道为什么和如何解决它.
TextFormField(
maxLength: 12,
buildCounter: (
BuildContext context, {
required int currentLength,
required bool isFocused,
required int? maxLength,
}) {
return null;
},
cursorColor: Colors.black,
decoration: InputDecoration(
labelText: 'Just Put numbers',
labelStyle: TextStyle(color: Colors.black),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.black,
),
),
),
inputFormatters: [
FilteringTextInputFormatter.allow(RegExp(r'^[0-9\s-]+$')),
],
)
字符串
我使用这段代码是因为我需要用一个数字模式来填充TextFormField
,比如“xxx-xxxx-xxxx”,而不仅仅是任何文本。
FilteringTextInputFormatter.allow(RegExp(r'^[0-9\s-]+$')),
1条答案
按热度按时间z9gpfhce1#
这可能是由iOS上的system shortcuts引起的。默认情况下
.
替换--
将替换为单个长破折号–
因此,正则表达式将不再匹配。并且
FilteringTextInputFormatter
将用其replacementString
替换所有内容,默认情况下,replacementString
是空字符串。