Если я могу немного изменить код. Я обнаружил, что если я пропущу через эту функцию строку с прописными буквами, ничего не произойдет. Так что ... вот мой кусочек. Сначала введите строку в нижний регистр.
String.prototype.capitalize = function(){
return this.toLowerCase().replace( /(^|\s)([a-z])/g , function(m, p1, p2) {
return p1 + p2.toUpperCase();
});
}