我对 JavaScript 还是比较陌生,我遇到了一个问题,就是要让数组中字符串的第一个字符变成大写。
我已经到了一个地步,我已经得到了所有文本小写字母,逐个字符反转文本,并将其变成一个字符串。我现在需要将字符串中的第一个字母变为大写。
function yay () {
var input = "Party like its 2015";
return input.toLowerCase().split("").reverse().join("").split(" ");
for(var i = 1 ; i < input.length ; i++){
input[i] = input[i].charAt(0).toUpperCase() + input[i].substr(1);
}
}
console.log(yay());
我需要输出为“partY like itS 2015”
最佳答案
令人沮丧的是,您发布了最初的问题而没有透露想要的结果。很多动荡都因此而起。现在,期望的结果终于明确了 - 这是一个答案。
你可以把整个东西小写,然后拆分成单词,通过大写单词中的最后一个字符来重建数组中的每个单词,然后重新加入数组:
function endCaseWords(input) {
return input.toLowerCase().split(" ").map(function(item) {
return item.slice(0, -1) + item.slice(-1).toUpperCase();
}).join(" ");
}
document.write(endCaseWords("Party like its 2015"));
这里是一步一步的解释:
- 小写整个字符串
- 使用
.split("")
拆分成单词数组 - 使用
.map()
迭代数组 - 对于每个单词,创建一个新单词,即单词的第一部分添加到单词中最后一个字符的大写版本
.join("")
重新组合成一个字符串- 返回结果
您还可以使用带有自定义回调的正则表达式替换:
function endCaseWords(input) {
return input.toLowerCase().replace(/.\b/g, function(match) {
return match.toUpperCase();
});
}
document.write(endCaseWords("Party like its 2015"));
仅供引用,您的原始代码有很多问题。最大的错误是,一旦您在函数中返回 return
,该函数中的其他代码就不会执行,因此您的 for
循环永远不会执行。
然后,真的没有理由需要 reverse()
字符,因为一旦你拆分成单词,你就可以访问每个单词中的最后一个字符。
关于javascript - 如何将字符串中每个单词的最后一个字母大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32149836/