首先我知道这不是正确的做法,但我想了解为什么会发生这种情况,以便更好地理解这门语言。
function titleCase(str) {
let str1 = str.toLowerCase();
str1 = str1.replace(str1[0], str1[0].toUpperCase());
console.log(str1);
for(let i=1; i < str1.length; i++){
if(str1[i]===' '){
str1 = str1.replace(str1[i+1], str1[i+1].toUpperCase());
console.log(i);
console.log(str1);
}
}
return str1;
}
titleCase("ab cd ef gh ba");
因此,如果最后一个单词的第一个字母未在它之前的任何单词的倒数第二个字母中出现,则正常工作。"ab cd ef gh" 没有问题,但 "ab cd ef gh ba" 会产生以下输出:"AB Cd Ef Gh ba"等等... 谢谢!
titleCase = str => str.replace(/\b[a-z]/, x=>x.toUpperCase());
- Niet the Dark Absolreplace
不是你想象中的那样。它不接受索引,而是接受一个字符串值(或单个字符),并替换其第一次出现。 - Bergi