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

如何实现乘客姓名(名与姓)的首字母大写处理?

实现乘客名和姓首字母大写的处理

你提供的示例代码仅能处理单个单词的名字(比如"fAdi"转为"Fadi"),但无法正确处理包含名和姓的全名(比如"john doe"这类情况)。以下是针对名和姓分别首字母大写的完整实现方案:

核心思路

  1. 统一将整个名字转为小写,避免原字符串的大小写混乱
  2. 按空格分割为名和姓的独立单词(兼容多个空格的情况)
  3. 对每个单词执行首字母大写、其余字母小写的处理
  4. 将处理后的单词重新拼接为完整的姓名字符串

改进后的代码实现

const formatPassengerName = function(name) {
  // 处理非字符串或空输入的边界情况
  if (!name || typeof name !== 'string') return '';
  
  return name.toLowerCase()
    .split(/\s+/) // 匹配一个或多个空格,分割单词
    .filter(word => word.length > 0) // 过滤掉空格导致的空字符串
    .map(word => word.charAt(0).toUpperCase() + word.slice(1))
    .join(' ');
};

// 测试用例
console.log(formatPassengerName("fAdi")); // 输出: Fadi
console.log(formatPassengerName("john doe")); // 输出: John Doe
console.log(formatPassengerName("jANE sMITH")); // 输出: Jane Smith
console.log(formatPassengerName("  alice   brown  ")); // 输出: Alice Brown

代码说明

  • toLowerCase():将整个字符串转为小写,确保后续处理的一致性
  • split(/\s+/):使用正则匹配任意数量的空格,避免多个空格导致的分割问题
  • filter(word => word.length > 0):过滤掉字符串首尾空格分割后产生的空元素
  • map(...):遍历每个单词,将首字母转为大写,拼接剩余的小写字母部分
  • join(' '):将处理后的单词数组重新拼接为空格分隔的完整姓名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:30:09