code: function camelCase (str, upperFirst, replaceStrRegex) {
          upperFirst = upperFirst || false;
          replaceStrRegex = replaceStrRegex || /[^a-z\d]/i;
          var newStr = '',
  
          // Get clean string
              parts = str.split(replaceStrRegex);
  
          // Upper Case First char for parts
          parts.forEach(function (part) {
              // If alpha chars
              if (/[a-z\d]/.test(part)) {
  
                  // ucase first char and append to new string,
                  // if part is a digit just gets returned by `ucaseFirst`
                  newStr += ucaseFirst(part);
              }
          });
  
          // If should not be upper case first
          if (!upperFirst) {
              // Then lower case first
              newStr = lcaseFirst(newStr);
          }
  
          return newStr;
      }
docs: Make a string code friendly. Camel cases a dirty string into
  a valid javascript variable/constructor name;  Uses `replaceStrRegex`
  to replace unwanted characters with a '-' and then splits and merges
  the parts with the proper casing, pass in `true` for lcaseFirst
  to lower case the first character.
  @function module:sjl.camelCase
  @param str {String}
  @param upperFirst {Boolean} default `false`
  @param replaceStrRegex {RegExp} default /[^a-z0-9] * /i (without spaces before and after '*')
  @returns {String}