Pure JS (ES5) chaining solution... No regex, No jquery, No es6
function drop_n_cap(s) {
function drop_em(v) { return v===' ' || v==='_' ? '' : v }
function cap_em(v,i,a) { return ! a[i-1] ? v.toUpperCase() : v }
return s.toLowerCase().split('').map(drop_em).map(cap_em).join('')
}