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

Flutter中如何从GST号码提取PAN号码?

Flutter从GST号码中自动提取PAN号码并填充到文本框

以下是实现从用户输入的GST号码中提取PAN号码,并自动填充到对应文本框的完整代码逻辑:

1. 定义文本控制器

首先定义两个TextEditingController,分别绑定GST输入文本框和PAN显示文本框,同时声明变量存储提取到的PAN号码:

TextEditingController gstController = TextEditingController();
TextEditingController panController = TextEditingController();
String _panNumber = '';

2. PAN号码提取与更新逻辑

提取PAN的核心方法

通过正则表达式匹配PAN号码的格式(5位大写英文字母 + 4位数字 + 1位大写英文字母),从输入的GST字符串中提取符合格式的PAN号码:

String extractPANNumber(String input) {
  // PAN号码的正则匹配规则
  RegExp panRegex = RegExp(r'[A-Z]{5}[0-9]{4}[A-Z]{1}');
  Iterable<Match> matches = panRegex.allMatches(input);
  // 返回第一个匹配到的PAN号码,无匹配则返回提示文本
  return matches.firstOrNull?.group(0) ?? '未找到PAN号码';
}

更新PAN显示的方法

调用提取方法获取PAN号码后,通过setState更新状态,并将结果赋值给PAN文本控制器,实现自动填充:

void _updatePAN(String gstNumber) {
  String panNumber = extractPANNumber(gstNumber);
  setState(() {
    _panNumber = panNumber;
    panController.text = panNumber;
  });
  print('提取的PAN号码:${panController.text}');
}

3. 释放控制器资源

在组件销毁时,务必销毁文本控制器,避免内存泄漏:

@override
void dispose() {
  gstController.dispose();
  panController.dispose();
  super.dispose();
}

界面使用示例

将控制器绑定到对应的文本框,并监听GST输入框的内容变化,实时触发PAN提取:

@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(title: const Text('GST转PAN工具')),
    body: Padding(
      padding: const EdgeInsets.all(16.0),
      child: Column(
        children: [
          TextField(
            controller: gstController,
            onChanged: _updatePAN,
            decoration: const InputDecoration(
              labelText: '请输入GST号码',
              border: OutlineInputBorder(),
            ),
            textCapitalization: TextCapitalization.characters, // 自动转为大写,适配PAN格式
          ),
          const SizedBox(height: 16),
          TextField(
            controller: panController,
            decoration: const InputDecoration(
              labelText: '提取的PAN号码',
              border: OutlineInputBorder(),
            ),
            enabled: false, // 设置为不可编辑,仅作显示
          ),
        ],
      ),
    ),
  );
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 12:35:28