我有此功能将字符串转换为标题大小写,
export function toTitleCase(text) {
const result = text.replace(/([A-Z])/g, ' $1');
return result.charAt(0).toUpperCase() + result.slice(1);
}
使用camelCase的结果是Camel Case。
结果是正确的。
使用camel23Case的结果是Camel23 Case。
我希望结果是Camel 23 Case
使用camelCASE的结果是Camel C A SE。
我希望结果是Camel CASE。
最佳答案
查找大写字母或数字的序列,并在其前添加一个空格。然后将第一个小写字母替换为大写字母:
const toTitleCase = (text) => text
.replace(/([A-Z]+|[0-9]+)/g, ' $1')
.replace(/\b([a-z])/g, (m) => m.toUpperCase());
console.log(toTitleCase('camelCase'));
console.log(toTitleCase('camel23Case'));
console.log(toTitleCase('camelCASE'));