我想将此livingRoom
转换为此Living room
:
因此,作为第一步,我想打破驼峰案例并将每个单词转换为小写:
"livingRoom"
.replace(/([A-Z])/g, ' $1')
.replace(/^./, function(str){ return str.toLowerCase(); })
然而,我明白了:
// => "living Room"
可能是什么原因?
答案 0 :(得分:2)
你可以尝试:
"livingRoom"
.replace(/([A-Z])/g, function(str){ return ' '+ str.toLowerCase(); })
.replace(/^.?/, function(str){ return str.toUpperCase(); })
//"Living room"
答案 1 :(得分:1)
/^./
只匹配第一个字符" l",它已经是小写字母。
答案 2 :(得分:0)
你有,
// This replace 'R' in 'livingRoom' with space + group1, which is ' R'.
.replace(/([A-Z])/g, ' $1') // Returns 'living Room'
// This finds any character after the beginning of line. which is 'l'.
.replace(/^./, function (str) { return str.toLowerCase() }); // str is 'l'
然而,还有另一种简单的方法来接近“起居室”,例如。
var str = "livingRoom"
.replace(/([A-Z])/g, ' $1');
// str is now 'living Room'
// Uppercase the first char in str, and concat it with the lowercased rest.
str = str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
// str is now 'Living room'
答案 3 :(得分:0)
console.log("livingRoom"
.replace(/([A-Z])/g, ' $1')
.replace(/ [A-Z]/, function(str){ return str.toLowerCase(); })
.replace(/^./, function(str){ return str.toUpperCase(); }));
^。只是替换第一个字符