推荐答案
function camelCase(str) { return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function(word, index) { return index === 0 ? word.toLowerCase() : word.toUpperCase(); }).replace(/\s+/g, ''); }
本题详细解读
1. 正则表达式解析
/(?:^\w|[A-Z]|\b\w)/g
:这个正则表达式匹配字符串中的每个单词的首字母。^\w
:匹配字符串开头的字母。[A-Z]
:匹配所有大写字母。\b\w
:匹配每个单词的首字母(\b
表示单词边界)。
g
:全局匹配,确保所有符合条件的字符都被替换。
2. 替换函数
function(word, index)
:这个函数用于处理每个匹配到的字符。word
:匹配到的字符。index
:匹配到的字符在原字符串中的索引。index === 0 ? word.toLowerCase() : word.toUpperCase()
:如果匹配到的字符是字符串的第一个字符,则将其转换为小写;否则转换为大写。
3. 去除空格
.replace(/\s+/g, '')
:这个部分用于去除字符串中的所有空格,确保最终的驼峰命名没有空格。
4. 示例
- 输入:
"hello world"
- 输出:
"helloWorld"
这个函数能够将任意字符串转换为驼峰命名格式,适用于各种场景。