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

JS实现spinalCase函数时split方法正则匹配异常,测试用例执行失败

问题根源

当前使用的正则/[\s-_]?(?=[A-Z])/g仅匹配大写字母前的拆分位置,无法识别小写单词之间的空格,导致Teletubbies say Eh-oh拆分后保留了多余空格,最终输出不符合格式要求。

修复方案

调整为两步处理逻辑,用replace方法分别处理驼峰拆分和分隔符统一:

  1. 先给小驼峰的分界位置(小写字母后接大写字母)插入-
  2. 把所有空格、下划线统一替换为-,最后转小写
function spinalCase(str) {
  return str.replace(/([a-z])([A-Z])/g, '$1-$2')
            .replace(/[\s_]+/g, '-')
            .toLowerCase()
}

所有测试用例运行结果

  • spinalCase('This Is Spinal Tap') → this-is-spinal-tap
  • spinalCase("thisIsSpinalTap") → this-is-spinal-tap
  • spinalCase("The_Andy_Griffith_Show") → the-andy-griffith-show
  • spinalCase("Teletubbies say Eh-oh") → teletubbies-say-eh-oh
  • spinalCase("AllThe-small Things") → all-the-small-things

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:18:03