There's about 40 prepositions, but this example only include a few for the example:
TitleCase(value: string): any {
if (!value) return null;
let words = value.split(' ');
for (let i=0; i < words.length; i++) {
let word = words[i];
// skip first word preposition
if (i > 0 && this.isPreposition(word))
words[i] = word.toLowerCase();
else
words[i] = this.toTitleCase(word);
}
return words.join(' ');
}
private toTitleCase(word:string):string {
return word.substring(0,1).toUpperCase() +
word.substring(1).toLowerCase();
}
private isPreposition(word:string):boolean {
let prepositions = ['if','the','a','on','in','of','or','and'];
return prepositions.includes(word.toLowerCase())
}