如何在 Flutter 中限制文本输入中的特殊字符?

Har*_*rdy 0 textinputlayout flutter flutter-layout

我只想使用 Alphabat、空格和“-”作为使用“Textinput”的名称输入。

用法:- 对于用户名输入,我们不希望用户输入“(,),$,%,&,*”字符。

Ami*_*ati 7

更新WhitelistingTextInputFormatter现已弃用,请使用FilteringTextInputFormatter

例子

    inputFormatters: [FilteringTextInputFormatter.allow(RegExp(r'^ ?\d*')),]
    inputFormatters: [FilteringTextInputFormatter.deny(' ')]
    inputFormatters: [FilteringTextInputFormatter.digitsOnly]
Run Code Online (Sandbox Code Playgroud)

您可以WhitelistingTextInputFormatter按预期使用输入文本RegExp

                    TextFormField(
                        controller: _titleTextController,
                        validator: _titleValidator,
                        decoration: InputDecoration(
                            labelText: "Title",
                            suffixIcon: GestureDetector(
                              onTap: () {
                                setState(() {
                                  _titleTextController.text ="";
                                });
                              },
                              child: Icon(Icons.clear),
                            )
                        ),
                        inputFormatters: [
                        // @depreacted WhitelistingTextInputFormatter(RegExp("[a-zA-Z -]"))
                         inputFormatters: [FilteringTextInputFormatter.allow(RegExp("[a-zA-Z -]"))]
                        ],
                      )
Run Code Online (Sandbox Code Playgroud)

有关更多信息,您可以参考:https : //api.flutter.dev/flutter/services/TextInputFormatter-class.html