我正在尝试创建一个函数,在该函数中,在toLowerCase()输入之后,将大写数组的每个元素中的第一个字母。
function title_case ( String ) {
var result = "";
var text = String.toLowerCase().split(" ");
for (var i = 0; i < text.length; i++) {
var c = text[i].charAt(0).toUpperCase();
result = result + c;
}
return result;
}
输入:
document.write( title_case( "a kitty PUrrs") );
当前代码的结果输出是AKP。我试图想办法用charAt(1)删除小写字符,然后如果可能的话输入join()。我是在正确的轨道上吗?我知道有更简单的方法,但我正在尝试沿着这些方向学习。
答案 0 :(得分:3)
您可以在第一个字符后面创建字符串其余部分的子字符串,而不是删除第一个字符。即:
result = result + c + text[i].substring(1, text[i].length()-1) + " ";
text[i].substring(1, text[i].length()-1)
获取单词中从第二个字符到单词结尾的部分(有点像&#34;删除&#34;第一个字符)。
并且您不需要join()
字符串函数,只需要+
进行连接。最后的" "
用空格分隔单词。在函数结束时,您可以返回result.trim()
以删除最后一个空格。
答案 1 :(得分:1)
使用以下功能将句子大写或将标题大写。
console.log(capitalizeFirstLetter("THIS IS A SENTENCE")); //converts a sentence to capitalise.
console.log(titleCase("THIS IS A SENTENCE")); //converts a sentence to titlecase.
function capitalizeFirstLetter(string) {
return string[0].toUpperCase() + string.slice(1).toLowerCase();
}
function titleCase(string) {
return string.split(" ").map(x => capitalizeFirstLetter(x)).join(" ");
}