只允许没有空格的小写输入文本字段颤振

San*_*ari 1 flutter flutter-layout

所以我正在制作一个聊天应用程序,我希望用户提交不应为大写且有空格的用户名,我可以接受名称并稍后在 onchanged 功能中更改它,但我希望用户也知道它

Sai*_*lak 8

Flutter 的TextFieldorTextFormField具有名为的属性inputFormatters,该属性采用TextInputFormatter.

一个例子对TextInputFormatters你的情况很有用。

FilteringTextInputFormatter.allow(RegExp("[a-z]"))

TextField(
 inputFormatters: <TextInputFormatter>[
  FilteringTextInputFormatter.allow(RegExp("[a-z]")),
 ],
)
Run Code Online (Sandbox Code Playgroud)

您可以TextInputFormatters在此处查看API 文档:参考


(在颤振 1.20 之前):

WhitelistingTextInputFormatter(RegExp("[a-z]")),

TextField(
 inputFormatters: <TextInputFormatter>[
  WhitelistingTextInputFormatter(RegExp("[a-z]")),
 ],
)
Run Code Online (Sandbox Code Playgroud)

如果不够清楚,您可以将它们作为参考:参考 2参考 3

另请查看此 SOF 问题:参考文献 4


ean*_*dpi 1

关于更改文本,请尝试执行以下操作:

假设“s”是用户名:

String s = ""
onChange(val) {
  s = val.trim().toLowerCase()
}

Run Code Online (Sandbox Code Playgroud)

如果您想通知用户,可以使用带有一些文本的警告对话框,让他们知道用户名不应为大写且不包含空格。无论如何,您不能假设用户会遵守他们“应该做的事情”。