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

如何实现按指定规则格式化并返回用户输入的姓名

姓名格式化功能实现方案

核心逻辑梳理

  • 输入预处理:去除输入字符串首尾空白,将连续多个空格替换为单个空格后,按空格切割为姓名片段列表
  • 辅助工具函数:封装统一的首字母大写格式化方法,将单个姓名片段处理为「首字母大写+其余字符小写」的格式,例:输入jOhn返回John
  • 分支处理:
    • 若姓名片段共2段:将两个片段分别格式化后用空格拼接即可
    • 若姓名片段共3段:前两个片段分别格式化后用连字符-拼接,再和格式化后的第三个片段用空格拼接
  • 输出最终拼接结果

代码示例

Python 实现

def format_name(raw_name: str) -> str:
    # 辅助函数:单段姓名格式化
    def capitalize_segment(seg: str) -> str:
        if not seg:
            return ""
        return seg[0].upper() + seg[1:].lower()
    
    # 预处理输入,分割为姓名片段
    segments = [s for s in raw_name.strip().split() if s]
    if len(segments) == 2:
        return f"{capitalize_segment(segments[0])} {capitalize_segment(segments[1])}"
    elif len(segments) == 3:
        part1 = f"{capitalize_segment(segments[0])}-{capitalize_segment(segments[1])}"
        part2 = capitalize_segment(segments[2])
        return f"{part1} {part2}"
    # 可根据需求扩展其他长度的处理逻辑,这里默认返回原格式化后的全空格拼接结果
    else:
        return " ".join([capitalize_segment(s) for s in segments])

# 测试用例
print(format_name("jOhn JhOnson")) # 输出:John Jhonson
print(format_name("jonny jon jony")) # 输出:Jonny-Jon Jony

JavaScript 实现

function formatName(rawName) {
    // 辅助函数:单段姓名格式化
    const capitalizeSegment = (seg) => {
        if (!seg) return ''
        return seg[0].toUpperCase() + seg.slice(1).toLowerCase()
    }

    // 预处理输入,分割为姓名片段
    const segments = rawName.trim().split(/\s+/).filter(s => s)
    if (segments.length === 2) {
        return `${capitalizeSegment(segments[0])} ${capitalizeSegment(segments[1])}`
    } else if (segments.length === 3) {
        const part1 = `${capitalizeSegment(segments[0])}-${capitalizeSegment(segments[1])}`
        const part2 = capitalizeSegment(segments[2])
        return `${part1} ${part2}`
    }
    // 其他长度默认处理
    return segments.map(capitalizeSegment).join(' ')
}

// 测试用例
console.log(formatName("jOhn JhOnson")) // 输出:John Jhonson
console.log(formatName("jonny jon jony")) // 输出:Jonny-Jon Jony

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:24:08