我遇到了一个挑战,每个单词的开头都要大写
Stuck with a challenge that has me capitalizing the beginning of each word
基本上,挑战是要有一个算法,它接受一个字符串,并返回每个单词的开头大写。很简单,但是在找到循环中的空格后,我被如何大写字母所困扰(也许有更好的方法)。
下面是我的代码: 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())
}
。
相关文章:
- 将组成单词的字符添加到数组的开头
- 匹配由单个空格分隔的单词,单词的开头或结尾不能有空格
- 如何在搜索框中获取从特定字母开头的单词
- 如何使用 JavaScript 获取所有以单词开头的 cookie
- 如何将有角度的文本区域设置为仅以特定单词开头
- Regex,替换所有以@开头的单词
- Javascript正则表达式匹配多个单词中至少一个以数字开头的单词,但至少匹配两个单词
- 如何隐藏所有以相同单词开头的 DIV,但一个具有特定值的 DIV 除外
- 替换以下划线开头的单词
- 正则表达式保留/匹配任何以特定字符开头的单词
- 获取以@开头的单词,例如正则表达式和javascript提到的Facebook
- JavaScript单词搜索,从单词的开头开始带空格和不带空格
- JavaScript正则表达式搜索每个单词和后续单词的开头
- 以相同元音字母开头和结尾的匹配单词
- 在开头或结尾使用特殊字符匹配单词
- 在 HTML 5 表单中每个单词的开头添加一个井号标签 (#)
- 提取 php 字符串中以 $ 开头的单词
- 如何在javascript中用一个特殊字符开头的单词内的空格替换下划线
- Javascript/REGEX:删除字符串中以特定字母开头的特定文本(单词),单词之间用空格分隔
- 只允许HTML字段以某些单词开头