You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何限制TextFormField仅输入字母,屏蔽特殊字符与数字?

在Flutter的TextFormField中仅允许输入字母(禁止数字及特殊字符)

完全可以实现这个需求,核心是利用Flutter提供的FilteringTextInputFormatter过滤不符合要求的输入字符,具体实现如下:

核心实现代码

给TextFormField添加inputFormatters属性,通过正则表达式限制仅允许大小写字母输入:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

class AlphabetOnlyInput extends StatelessWidget {
  const AlphabetOnlyInput({super.key});

  @override
  Widget build(BuildContext context) {
    return TextFormField(
      decoration: const InputDecoration(
        labelText: '仅输入字母',
        hintText: '请输入大小写字母',
        border: OutlineInputBorder(),
      ),
      // 核心过滤规则:仅允许大小写字母
      inputFormatters: [
        FilteringTextInputFormatter.allow(RegExp(r'[a-zA-Z]')),
      ],
      // 可选:指定文本键盘类型(默认即为text,可省略)
      keyboardType: TextInputType.text,
    );
  }
}

效果说明

  • 点击键盘上的数字、特殊字符(如!@#$等)时,输入操作完全无效,这些字符不会出现在输入框中
  • 仅大小写字母可正常输入
  • 粘贴包含非字母内容的文本时,非字母部分会被自动过滤,仅保留有效字母

扩展调整

如果需要允许输入空格,只需修改正则表达式为RegExp(r'[a-zA-Z\s]');如果仅允许小写字母,改为RegExp(r'[a-z]')即可。

内容的提问来源于stack exchange,提问作者Rajesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:09:50