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
相关产品推荐
相关产品推荐

