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

TypeScript开发:移除首字符外的所有元音字符

在TypeScript中移除字符串首字符外的所有元音字符

实现思路

核心需求是保留字符串的第一个字符(无论是否为元音),过滤掉从第二个字符开始的所有元音字母(包含大小写)。下面提供两种实用的实现方式:

方法一:数组过滤+集合查找

逻辑直观,适合需要明确控制过滤过程的场景:

function removeVowelsExceptFirst(str: string): string {
  if (str.length === 0) return str;
  
  // 用Set存储元音,提升查找效率
  const vowels = new Set(['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']);
  
  // 保留首字符,过滤剩余字符中的元音后拼接
  return str[0] + str.slice(1)
    .split('')
    .filter(char => !vowels.has(char))
    .join('');
}

// 测试用例
console.log(removeVowelsExceptFirst('abced')); // 输出: 'abcd'
console.log(removeVowelsExceptFirst('Apple')); // 输出: 'Appl'
console.log(removeVowelsExceptFirst('HelloWorld')); // 输出: 'HlloWrld'
console.log(removeVowelsExceptFirst('')); // 输出: ''

方法二:正则表达式替换

代码更简洁,适合快速实现需求:

function removeVowelsExceptFirst(str: string): string {
  if (str.length === 0) return str;
  
  // 匹配从第二个字符开始的所有元音,全局替换为空
  return str[0] + str.slice(1).replace(/[aeiouAEIOU]/g, '');
}

// 测试用例
console.log(removeVowelsExceptFirst('abced')); // 输出: 'abcd'
console.log(removeVowelsExceptFirst('Orange')); // 输出: 'Orng'

说明

  • 两种方法都处理了空字符串的边界情况,避免索引错误。
  • 正则中的g标志确保替换所有匹配的元音,而非仅第一个。
  • 若只需处理小写元音,可移除正则或集合中的大写字母。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:10:40