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

如何用JavaScript正则实现含缩写的连写大写单词间加空格?

解决驼峰式字符串分割问题:处理连续大写字母场景

你的正则表达式/([A-Z][a-z]*)([A-Z]*)/g能处理普通的驼峰/帕斯卡命名(比如DerivateASK→Derivate ASK),但遇到连续大写字母后面紧跟大写+小写的组合时(比如ASKAnalysis)就失效了——因为它把连续的大写字母当成了一个整体,没在ASK和Analysis之间插入空格。

正确的正则表达式方案

const formatString = (s) => s.replace(/([a-z])([A-Z])|([A-Z])([A-Z][a-z])/g, '$1$3 $2$4').trim();

正则逻辑解释

这个正则包含两个匹配分支,覆盖了所有需要插入空格的场景:

  1. ([a-z])([A-Z]):匹配「小写字母 + 大写字母」的组合(比如Derivate的末尾e和ASK的开头A),替换时在两者之间加空格。
  2. ([A-Z])([A-Z][a-z]):匹配「大写字母 + 大写字母+小写字母」的组合(比如ASK的末尾K和Analysis的开头A,因为A后面跟着小写的nalysis),替换时在这两个大写字母之间加空格。

测试验证

  • 输入DerivateASK → 输出Derivate ASK(符合预期)
  • 输入LiquidASKAnalysis → 输出Liquid ASK Analysis(完美解决你的问题)
  • 额外测试:HelloWORLDTest → Hello WORLD Test;ABCDefGHIJklm → ABC Def GHIJ klm

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:17:48