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

JavaScript如何实现带连字符字符串首字母及连字符后字母大写并去连字符

问题分析

现有代码仅通过正则/(-.)/g匹配连字符后的字符做大写转换,没有处理原字符串的首字母大写逻辑,因此会出现es-US处理后为esUS而非预期EsUS的问题。

解决方案

修改正则匹配规则,同时覆盖首字符和连字符后字符的处理,完整代码如下:

const locales = ['es-US', 'en-US', 'en-CA', 'fr-CA', 'ar', 'fi', 'hy']

for(const st of locales) {
   const basePkg = `locale${st.replace(/(^.|-.)/g, x => x.slice(-1).toUpperCase())}`;
   console.log(basePkg); 
}
逻辑说明
  • 正则/(^.|-.)/g可同时匹配两类内容:字符串开头的第一个字符、连字符紧跟的第一个字符
  • 替换逻辑中通过slice(-1)取匹配结果的最后一位:如果是开头字符直接取本身,如果是连字符加后续字符的组合就取连字符后的字符,统一转大写后自然就移除了连字符,同时满足全部需求

运行后输出结果和你预期的完全一致:
['localeEsUS', 'localeEnUS', 'localeEnCA', 'localeFrCA', 'localeAr', 'localeFi', 'localeHy']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:00:02