camelize = function (string) { if (_isNumerical(string)) { return string; } string = string.replace(/[\-_\s]+(.)?/g, function(match, chr) { return chr ? chr.toUpperCase() : ''; }); // Ensure 1st char is always lowercase return string.substr(0, 1).toLowerCase() + string.substr(1); }
...
Takes inspiration from [Ember Data](https://github.com/emberjs/data) and copies some utility functions from [Underscore.js](http
://underscorejs.org/).
Usage
-----
### Converting strings
humps.camelize('hello_world') // 'helloWorld'
humps.decamelize('fooBar') // 'foo_bar'
humps.decamelize('fooBarBaz', { separator: '-' }) // 'foo-bar-baz'
### Converting object keys
var object = { attr_one: 'foo', attr_two: 'bar' }
humps.camelizeKeys(object); // { attrOne: 'foo', attrTwo: 'bar' }
...
camelizeKeys = function (object, options) { return _processKeys(_processor(camelize, options), object); }
...
humps.camelize('hello_world') // 'helloWorld'
humps.decamelize('fooBar') // 'foo_bar'
humps.decamelize('fooBarBaz', { separator: '-' }) // 'foo-bar-baz'
### Converting object keys
var object = { attr_one: 'foo', attr_two: 'bar' }
humps.camelizeKeys(object); // { attrOne: 'foo', attrTwo: 'bar'
; }
Arrays of objects are also converted
var array = [{ attr_one: 'foo' }, { attr_one: 'bar' }]
humps.camelizeKeys(array); // [{ attrOne: 'foo' }, { attrOne: 'bar' }]
It also accepts a callback which can modify the conversion behavior. For example to prevent conversion of keys containing only uppercase
letters or numbers:
...
decamelize = function (string, options) { return separateWords(string, options).toLowerCase(); }
...
Usage
-----
### Converting strings
humps.camelize('hello_world') // 'helloWorld'
humps.decamelize('fooBar') // 'foo_bar'
humps.decamelize('fooBarBaz', { separator: '-' }) // 'foo-bar-baz'
### Converting object keys
var object = { attr_one: 'foo', attr_two: 'bar' }
humps.camelizeKeys(object); // { attrOne: 'foo', attrTwo: 'bar' }
...
decamelizeKeys = function (object, options) { return _processKeys(_processor(decamelize, options), object, options); }
...
humps.camelizeKeys(array); // [{ attrOne: 'foo' }, { attrOne: 'bar' }]
It also accepts a callback which can modify the conversion behavior. For example to prevent conversion of keys containing only uppercase
letters or numbers:
humps.camelizeKeys(obj, function (key, convert) {
return /^[A-Z0-9_]+$/.test(key) ? key : convert(key);
});
humps.decamelizeKeys(obj, function (key, convert, options) {
return /^[A-Z0-9_]+$/.test(key) ? key : convert(key, options);
});
In order to use the callback with options use the `process` option:
humps.decamelizeKeys(obj, {
separator: '-',
...
depascalize = function (string, options) { return separateWords(string, options).toLowerCase(); }
...
By default, `decamelize` will only split words on capital letters (not numbers as in humps pre v1.0). To customize this behaviour
, use the `split` option. This should be a regular expression which, when passed into `String.prototype.split`, produces an array
of words (by default the regular expression is: `/(?=[A-Z])/`). For example, to treat numbers as uppercase:
```javascript
humps.decamelize('helloWorld1', { split: /(?=[A-Z0-9])/ }) // 'hello_world_1'
```
### `humps.depascalize(string, options)`
Same as `humps.decamelize` above.
### `humps.camelizeKeys(object, options)`
Converts object keys to camelCase. It also converts arrays of objects.
...
depascalizeKeys = function () { return this.decamelizeKeys.apply(this, arguments); }
...
Converts object keys to PascalCase. It also converts arrays of objects.
### `humps.decamelizeKeys(object, options)`
Separates camelCased object keys with an underscore. It also converts arrays of objects. See `humps.decamelize` for details of options
.
### `humps.depascalizeKeys(object, options)`
See `humps.decamelizeKeys`.
Licence
-------
humps is copyright © 2012+ [Dom Christie](http://domchristie.co.uk) and released under the MIT license.
...
pascalize = function (string) { var camelized = camelize(string); // Ensure 1st char is always uppercase return camelized.substr(0, 1).toUpperCase() + camelized.substr(1); }
...
Removes any hypens, underscores, and whitespace characters, and uppercases the first character that follows.
```javascript
humps.camelize('hello_world-foo bar') // 'helloWorldFooBar'
```
### `humps.pascalize(string)`
Similar to `humps.camelize(string)`, but also ensures that the first character is uppercase.
```javascript
humps.pascalize('hello_world-foo bar') // 'HelloWorldFooBar'
```
...
pascalizeKeys = function (object, options) { return _processKeys(_processor(pascalize, options), object); }
...
Same as `humps.decamelize` above.
### `humps.camelizeKeys(object, options)`
Converts object keys to camelCase. It also converts arrays of objects.
### `humps.pascalizeKeys(object, options)`
Converts object keys to PascalCase. It also converts arrays of objects.
### `humps.decamelizeKeys(object, options)`
Separates camelCased object keys with an underscore. It also converts arrays of objects. See `humps.decamelize` for details of options
.
...