Title Capitalization
by verashn
HTML
<input id="title" name="title" placeholder="Enter a title">
<h2 id="titleResult">Title</h2>
JavaScript
var Title = (function() {
var EXEMPT_FROM_CAP = ["a", "the", "to", "at", "in", "with", "and", "but", "or"];
var capitalizeWord = function (word) {
word = word[0].toUpperCase() + word.substring(1);
return word;
}
var capitalizeTitle = function (title) {
var titleStr = title.toLowerCase();
var titleArr = titleStr.split(" ");
var lastWord = titleArr.length - 1;
var result = titleArr.map(function(word, index) {
if (index === 0 || index === lastWord || EXEMPT_FROM_CAP.indexOf(word) === -1) {
word = capitalizeWord(word);
}
return word;
}).join(" ");
return result;
}
return {
capitalizeTitle: capitalizeTitle
};
}());
var titleInput = document.getElementById('title'),
titleResult = document.getElementById('titleResult');
titleInput.addEventListener('change', function() {
titleResult.innerHTML = Title.capitalizeTitle(this.value);
});
console.log( Title.capitalizeTitle("wHy DoeS A biRd Fly?"));
console.log (Title.capitalizeTitle("the cow flies over the moon with"));