Write a JavaScript function that accepts a string as a parameter and converts the first letter of each word of the string in upper case code example

Example 1: javascript capitalize words

//capitalize only the first letter of the string. 
function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase() + string.slice(1);
}
//capitalize all words of a string. 
function capitalizeWords(string) {
    return string.replace(/(?:^|\s)\S/g, function(a) { return a.toUpperCase(); });
};

Example 2: javascript capitalize first letter of each word

// includeAllCaps is optional and defaults to false
// if includeAllCaps is set to true, it will Title Case words with all capital letters

// includeMinorWords is optional and defaults to false
// if includeMinorWords is set to true, it will minor words in the middle of the string

function toTitleCase(str, includeAllCaps, includeMinorWords) {
    includeAllCaps = (includeAllCaps ? (includeAllCaps == true ? true : false) : false);
    includeMinorWords = (includeMinorWords ? (includeMinorWords == true ? true : false) : false);
    var i, j, lowers;
    str = str.replace(/([^\W_]+[^\s-]*) */g, function (txt) {
        if (!/[a-z]/.test(txt) && /[A-Z]/.test(txt) && !includeAllCaps) {
            return txt;
        } else {
            return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
        }
    });

    if (includeMinorWords) {
        return str;
    } else {
        // Certain minor words should be left lowercase unless 
        // they are the first or last words in the string
        lowers = ['A', 'An', 'The', 'And', 'But', 'Or', 'For', 'Nor', 'As', 'At',
            'By', 'For', 'From', 'In', 'Into', 'Near', 'Of', 'On', 'Onto', 'To', 'With'
        ];
        for (i = 0, j = lowers.length; i < j; i++)
            str = str.replace(new RegExp('\\s' + lowers[i] + '\\s', 'g'),
                function (txt) {
                    return txt.toLowerCase();
                });

        return str;
    }
}

toTitleCase("FOO bar"); // FOO Bar
toTitleCase("FOO bar", true); // Foo Bar
toTitleCase("a foo bar"); // A Foo Bar
toTitleCase("a foo in bar"); // A Foo in Bar
toTitleCase("foo of bar"); // Foo of Bar
toTitleCase("foo of bar", false, true); // Foo Of Bar