/ Published in: JavaScript
I haven't take a very good look to the code, but I put it here for future reference.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
/* * Title Caps * * Ported to JavaScript By John Resig - http://ejohn.org/ - 21 May 2008 * Original by John Gruber - http://daringfireball.net/ - 10 May 2008 * License: http://www.opensource.org/licenses/mit-license.php */ (function(){ var small = "(a|an|and|as|at|but|by|en|for|if|in|of|on|or|the|to|v[.]?|via|vs[.]?)"; var punct = "([!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]*)"; this.titleCaps = function(title){ var parts = title.split(/([:.;?!] |(?: |^)["Ò])/); for ( var i = 0; i < parts.length; i++ ) { parts[i] = parts[i] .replace(/\b([A-Za-z][a-z.'Õ]*)\b/g, function(all){ return /[A-Za-z]\.[A-Za-z]/.test(all) ? all : upper(all); }) .replace(RegExp("\\b" + small + "\\b", "ig"), lower) .replace(RegExp("^" + punct + small + "\\b", "ig"), function(all, punct, word){ return punct + upper(word); }) .replace(RegExp("\\b" + small + punct + "$", "ig"), upper); } return parts.join("").replace(/ V(s?)\. /ig, " v$1. ") .replace(/(['Õ])S\b/ig, "$1s") .replace(/\b(AT&T|Q&A)\b/ig, function(all){ return all.toUpperCase(); }); }; function lower(word){ return word.toLowerCase(); } function upper(word){ return word.substr(0,1).toUpperCase() + word.substr(1); } })();
URL: http://ejohn.org/files/titleCaps.js