Plz_dont_hate
Plz_dont_hate

Reputation: 57

How to capitalize the first letter of specific words in a document?

I'm modifying a Google-apps-script to create meeting minutes(google doc) from google calendar events. For reasons, rather than importing the name of participants, I have to import their emails and modify the text to make it appear as names. Here is a link to the result (can't post images yet) : Both the first name and last name are completely in lowercase I have no idea how to capitalize the first letter of the First and Last name. Here are the relevant parts of my code:

function createMeetingNotesNextTimePeriod() {

    // variables for text format
    var emailString = '@companyname';
    var deleteString = '';
    var repEmail = 'test';
    var dot = '\[.]';
    var spaceString = ' ';
    var repDot = 'test2'; 

    // retrieve all calendar events for time period with @notes string
    var events = CalendarApp.getDefaultCalendar().getEvents(now, period_from_now, {search: '@notes'}) ; 
    // loop through each event an get meeting attributes, 
    for (var i=0;i<events.length;i++) {
      var title = events[i].getTitle();
      var eventstart = events[i].getStartTime();
      var eventend = events[i].getEndTime();
      var location = events[i].getLocation();
      var owner = events[i].getCreators();
      var ordredujour = events[i].getDescription();
      var guestlist = events[i].getGuestList();

      // create a google doc with the meeting name as the title       
      var doc = DocumentApp.create(title);

      //write the description of the meeting 
      doc.getBody().editAsText()
      .insertText(0, '\n' + 'Ordre du jour:  ' + ordredujour + '\n\n');               

      //writes the email adresses of the guests
      for (var j=0;j<guestlist.length;j++) {
      var name = guestlist[j].getEmail();
      var guestStatus = guestlist[j].getGuestStatus();
      doc.getBody().editAsText()
      .insertText(0, name + ': ' + guestStatus +'\n')
      }

      //Write Guests
      doc.getBody().editAsText()
      .insertText(0, 'Invités:\n');

      //Write the name of the organiser 
      doc.getBody().editAsText()
      .insertText(0, 'Organisateur:  ' + owner + '\n\n' );

      //writes the location of the meeting
      doc.getBody().editAsText()
      .insertText(0, 'Location:  ' + location + '\n\n');

      //writes the meeting ending time
      doc.getBody().editAsText()
      .insertText(0, 'Fin:  ' + eventend + '\n\n');

      //writes the meeting starting time
      doc.getBody().editAsText()
      .insertText(0, 'Début:  ' + eventstart + '\n');

      //writes the title of the meeting
      doc.getBody().editAsText()
      .insertText(0, '\n\n' + title + '\n\n')
      .setFontSize(0, title.length+1, 14)
      .setBold(0, title.length+1, true)
      .setForegroundColor(0, title.length+1, '#cc0000');

      //replacement of "@companyname.com" and "." 
      Logger.log(repEmail.replace(emailString, deleteString)); 
      Logger.log(repEmail.replace(new RegExp(emailString), deleteString)); 
      doc.replaceText(emailString,deleteString);
      Logger.log(doc.getText());

      Logger.log(repDot.replace(dot, spaceString)); 
      Logger.log(repDot.replace(new RegExp(dot), spaceString)); 
      doc.replaceText(dot,spaceString);

    }  // for loop for each event 

}  // functionCreateMeetingNotesNextTimePeriod

Upvotes: 1

Views: 231

Answers (1)

Mitesh Gadhiya
Mitesh Gadhiya

Reputation: 362

Plese try below code

doc.getBody().editAsText()
      .insertText(0, name.split(" ")[0].charAt(0).toUpperCase() + name.split(" ")[0].slice(1) + ' ' + name.split(" ")[1].charAt(0).toUpperCase() + name.split(" ")[1].slice(1)  + ': ' + guestStatus +'\n')
      }

instead of

 doc.getBody().editAsText()
      .insertText(0, name + ': ' + guestStatus +'\n')
      }

it may work for you.

Upvotes: 1

Related Questions