基本上,挑战是要有一个算法,它接受一个字符串,并返回每个单词的开头大写。很简单,但是在找到循环中的空格后,我被如何大写字母所困扰(也许有更好的方法)。
下面是我的代码: var capitalize = function(string){
var split = string.split(" ");
var collection = [];
var store = [];
for(var i = 0; i < split.length; i++){
if(split[i]){
if(split[i] === " "){
var init = split[i+1].toUpperCase();
store.push(init);
collection.push(split[i]);
} else{
collection.push(split[i]);
}
}
}
var temp = collection.join(" ");
var final = temp.charAt(0).toUpperCase() + temp.slice(1);
return final;
}
显然,在我的for循环中,它不允许我改变我正在迭代的数组。然后我尝试了while循环,我尝试使用数组。地图和它仍然不能工作。我只是不明白如何在找到空格(")后将单词大写。
不能按" "
分割字符串并使每个集合条目的第一个字母大写吗?
看一下他们是怎么把第一个字母大写的
明明可以用CSS做,为什么还要用JS呢
p.capitalize {
text-transform: capitalize;
}
<p class='capitalize'>
hello how are you?
</p>
jsfiddle
不需要那么多变量
:
function (str){
return str.replace(str.charAt(0), str.charAt(0).toUpperCase())
}
。