javascript - 如何将字符串中每个单词的最后一个字母大写

标签 javascript string

我对 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"));

这里是一步一步的解释:

  1. 小写整个字符串
  2. 使用.split("")拆分成单词数组
  3. 使用.map()迭代数组
  4. 对于每个单词,创建一个新单词,即单词的第一部分添加到单词中最后一个字符的大写版本
  5. .join("") 重新组合成一个字符串
  6. 返回结果

您还可以使用带有自定义回调的正则表达式替换:

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/

相关文章:

javascript - 使用 Applescript 查找两个常量之间的变量文本

javascript - 切换 DIV 隐藏和显示

javascript - webview中的远程网站可以与Phonegap结合使用吗?

JavaScript,从多个数组中获取所有唯一的组合

java - 递归查找字符串中字母出现的次数

python - 为什么 s[len(s)-1 :-1:-1] not work?

javascript - AngularJS - 编辑对象并应用/恢复更改

javascript - 使用 Electron 时,设计 HTML/CSS 布局的最佳方式是什么?

arrays - 如何根据 bash 中的定界符拆分字符串?

javascript - 如何解析对象的字符串?