caseConverter
统一的大小写转换函数,支持多种命名格式之间的相互转换。
函数签名
typescript
function caseConverter(
str: string,
options?: CaseOptions,
returnDetails?: boolean
): string | CaseResult
type CaseType = 'camel' | 'pascal' | 'kebab' | 'snake' | 'constant' | 'dot' | 'path' | 'sentence' | 'title'
interface CaseOptions {
targetCase?: CaseType // 目标格式,默认 'camel'
preserveConsecutiveUppercase?: boolean // 保留连续大写字母,默认 false
}
interface CaseResult {
original: string
camelCase: string
pascalCase: string
kebabCase: string
snakeCase: string
constantCase: string
dotCase: string
pathCase: string
sentenceCase: string
titleCase: string
detectedCase: CaseType | 'mixed'
}参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
str | string | 是 | - | 需要转换的字符串 |
options.targetCase | CaseType | 否 | 'camel' | 目标命名格式 |
options.preserveConsecutiveUppercase | boolean | 否 | false | 是否保留连续大写字母(如 HTMLParser) |
returnDetails | boolean | 否 | false | 是否返回所有格式的详细结果 |
返回值
| 类型 | 说明 |
|---|---|
string | 当 returnDetails 为 false 时,返回转换后的字符串 |
CaseResult | 当 returnDetails 为 true 时,返回包含所有格式的对象 |
工作原理
- 检测输入字符串的命名格式(camel/pascal/kebab/snake 等)
- 根据分隔符和大小写模式将字符串分割为单词数组
- 处理连字符、下划线、点、斜杠、空格等分隔符
- 识别驼峰命名的单词边界
- 根据
preserveConsecutiveUppercase选项处理连续大写字母
- 将单词数组转换为目标格式:
camel: 第一个单词小写,其余单词首字母大写pascal: 所有单词首字母大写kebab: 所有单词小写,用-连接snake: 所有单词小写,用_连接constant: 所有单词大写,用_连接dot: 所有单词小写,用.连接path: 所有单词小写,用/连接sentence: 第一个单词首字母大写,其余小写,用空格连接title: 所有单词首字母大写,用空格连接
- 根据
returnDetails返回单个格式字符串或所有格式的对象