我正在尝试通过一个函数传递一个短语,以便每个首字母大写,其他一切都是小写。我有以下功能:
function titleCase(str) {
var array = [];
for (var i = 0; i <= str.length; i++) {
str = str.split(' ');
str = str[i].toLowerCase();
str = str.charAt(0).toUpperCase() + str.substr(1, str.length);
array = array.push(str);
return array.push(str);
}
}
titleCase("SenTencE TesT");
如果没有for循环,该函数将起作用,并将小写所有内容,然后将每个单词的第一个字母大写。
答案 0 :(得分:2)
<强> [编辑] 强>
有很多方法可以做到,但试试这个...
function titleCase(string) {
var array = string.split(' ');
var newString = '';
for (var i = 0; i <= array.length-1; i++) {
array[i] = array[i].toLowerCase();
array[i] = array[i].charAt(0).toUpperCase() + array[i].substr(1, array[i].length);
newString += array[i] + ' ';
};
return newString.trim();
};
console.log( titleCase("SenTencE TesT") );
答案 1 :(得分:0)
1)不要命名你的变量数组,即一个JavaScript保留字,你可以使用“arr”作为例子。
2)在你的代码中,你将句子分成一个单词数组,但你只是将toLowerCase应用到第一个单词。
3)有一种更清洁的方式来实现你想要的结果:
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
}
console.log( capitalize("sentence TesT") );
希望它有所帮助。