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

Dart/Flutter课程代码字符串转换:自动插入空格适配API格式要求

Dart/Flutter 课程代码自动插入空格实现方案

实现思路

通过正则表达式匹配输入字符串的字母前缀(3-4位)和数字后缀的分界点,自动在中间插入空格,同时兼容用户已输入空格的场景。

核心代码

String formatCourseCode(String rawInput) {
  // 先清空输入中所有已有的空格,避免重复插入
  final cleanedStr = rawInput.replaceAll(RegExp(r'\s+'), '');
  // 正则匹配规则:开头3-4位字母,后续全为数字
  final courseCodeReg = RegExp(r'^([A-Za-z]{3,4})(\d+)$');
  final matched = courseCodeReg.firstMatch(cleanedStr);

  if (matched != null) {
    // 匹配成功时,在字母和数字中间插入空格
    return '${matched.group(1)} ${matched.group(2)}';
    // 如果需要统一转为大写,改为下方写法:
    // return '${matched.group(1)?.toUpperCase()} ${matched.group(2)}';
  }
  // 匹配失败(格式不符合规则)时,可按业务需求返回原输入/抛出异常/返回提示
  return rawInput;
}

测试效果

  • 输入MCTE2333,输出MCTE 2333
  • 输入CCUB3621,输出CCUB 3621
  • 输入BTE1021,输出BTE 1021
  • 输入mcte2333,默认输出mcte 2333,加转大写逻辑后输出MCTE 2333
  • 输入已经带空格的MCTE 2333,输出仍为MCTE 2333,不会重复插入空格

拓展说明

如果需要对用户输入做合法性校验,可在正则匹配失败时返回错误提示,引导用户输入符合规则的课程代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:45:03