如何在 Javascript 中对句子进行标题大写

How to Title Case a sentence in Javascript

<html>
<head>
 <!--Wei Wu Section A-->
 <title>This is the 4th extra credit</title>
</head>
<body>
 <script type="text/javascript">
 function toUpper(stringFromUser){
  var arrayOfStrings = [];
   arrayOfStrings = stringFromUser.split(" ");
   for(i=0;i<arrayOfStrings.length;i++){
    //if (char(arrayOfStrings[i][0]) <= 122 && char(arrayOfStrings[i][0]) >= 97){
      if (arrayOfStrings[i].charCodeAt(0) <=122 && arrayOfStrings[i].charCodeAt(0) >=97){ 
     arrayOfStrings[i] = arrayOfStrings[i].charAt(0).toUpperCase() + arrayOfStrings[i].slice(1);
    }
   }
  var afterTitle = "";
  afterTitle = arrayOfStrings.join(" ");
   document.getElementById('afterChange').innerHTML = afterTitle;
  }

 </script>
 <p>Enter a sentence and I will turn it into Title Case!<input id="textInput" value=""></p>
 <button onclick="toUpper(textInput.value)">Change case!</button>
 <p id="afterChange"></p>
</body>
</html>

您好,在此先感谢您的帮助。这是我正在处理的代码之一。这段代码的目的是 "Title Case" 句子中每个单词的第一个字母。经过一些工作后,我的代码运行得很好。

但我有一个问题:在第14行,我试图将大写字母直接赋值给arrayOfString[i][0],但没有成功。相反,我更改了整个元素,也就是数组中的元素。为什么那行不通?非常感谢!

您可以将此代码用于 Title Case

<html>
<head>
 <!--Wei Wu Section A-->
 <title>This is the 4th extra credit</title>
</head>
<body>
 <script type="text/javascript">
 function toUpper(stringFromUser){
    var afterTitle = toTitleCase(stringFromUser);
    document.getElementById('afterChange').innerHTML = afterTitle;
        }
        function toTitleCase(str)
        {
            return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
        }
 </script>
 <p>Enter a sentence and I will turn it into Title Case!<input id="textInput" value=""></p>
 <button onclick="toUpper(textInput.value)">Change case!</button>
 <p id="afterChange"></p>
</body>
</html>

字符串是不可变的 - 您不能通过分配给它们的 [] 索引来更改其中的单个字符。所以,你必须把它们分开,然后像你一样把它们重新组合起来。