add camelize and decamelize.

This commit is contained in:
gnipbao
2017-12-16 21:24:29 +08:00
parent ddbcf68456
commit ec407bae91
3 changed files with 35 additions and 0 deletions

17
snippets/camelize.md Normal file
View File

@ -0,0 +1,17 @@
### Camelize
Camelize a string, cutting the string by multiple separators like
hyphens, underscores and spaces.
```js
/**
* @param {str} string str to camelize
* @return string Camelized text
*/
const camelize = str => str.replace(/^([A-Z])|[\s-_]+(\w)/g,
(match, p1, p2, offset) => p2 ? p2.toUpperCase() : p1.toLowerCase());
// camelize("some_database_field_name") -> 'someDatabaseFieldName'
// camelize("Some label that needs to be camelized") -> 'someLabelThatNeedsToBeCamelized'
// camelize("some-javascript-property") -> 'someJavascriptProperty'
// camelize("some-mixed_string with spaces_underscores-and-hyphens") -> 'someMixedStringWithSpacesUnderscoresAndHyphens'
```