Search code examples
uppercaseparagraphletter

Javascript First letter uppercase restlower of two lines "."


I want to first letter to be in upper case other in lower. But after ".", it must be upper again..

function firstToUpperCase( str ) {
    return str.substr(0, 1).toUpperCase() + str.substr(1);
}

var str = 'prompt("Enter text to convert: ")
var Upcase = firstToUpperCase( str );

document.write(Upcase);

Solution

  • Here's a simplistic answer based on what you provided. It does not take whitespace into account following the period since you didn't mention that in the specs.

    function firstToUpperCase(str) {
      var parts = str.split(".");
      for (i = 0; i < parts.length; i++) {
        parts[i] = parts[i].substring(0, 1).toUpperCase() + parts[i].substring(1).toLowerCase();
      }
      return parts.join(".");
    }

    If you're trying to deal with sentences, something like this might be a little better, though it does not preserve exact whitespace:

    function firstToUpperCase(str) {
        var parts = str.split(".");
        for (i = 0; i < parts.length; i++) {
          sentence = parts[i].trim();
          parts[i] = sentence.substring(0, 1).toUpperCase() + sentence.substring(1).toLowerCase();
    
        }
        return parts.join(". ");