【发布时间】:2019-06-25 16:43:26
【问题描述】:
使用此函数调用:
var StringData = window.ToCamelCase({ 'string': 'HELLO WORLD', 'remSpace': false });
console.log(StringData);
这是我的脚本函数:
function ToCamelCase(data) {
data['string'] = data['string'].replace(/(?:^\w|[A-Z]|\b\w)/g, function(word, index) {
return index == 0 ? word.toUpperCase() : word.toLowerCase();
});
if (data['remSpace']) {
data['string'] = data['string'].replace(/\s/g, '');
}
return data['string'];
}
我没有收到错误;但不能正常工作,如果我通过了这样的字符串:
"HELLO WORLD"
此时第二个单词不把第一个字母大写
输出是:"Hello world",我期望:"Hello World"
每个单词的第一个字母大写,后面的小写是规则。
我做错了什么?
【问题讨论】:
-
字符串是不可变的。
replace()确实 *not * 修改使用它的字符串。它返回 修改后的字符串,您没有捕获该字符串。考虑data['string'] = data['string'].replace(...)。 -
我已经修改了问题。
-
此时第二个单词没有把第一个字母大写
-
@Teemu 是真的,不需要删除空间...
-
@TylerRoper 我已经更新了功能和问题...
标签: javascript replace