17 lines
630 B
Markdown
17 lines
630 B
Markdown
### decamelize
|
|
|
|
Decamelizes a string with/without a custom separator (underscore by default).
|
|
|
|
```js
|
|
const decamelize = (str, separator) => {
|
|
separator = typeof separator === 'undefined' ? '_' : separator;
|
|
return str
|
|
.replace(/([a-z\d])([A-Z])/g, '$1' + separator + '$2')
|
|
.replace(/([A-Z]+)([A-Z][a-z\d]+)/g, '$1' + separator + '$2')
|
|
.toLowerCase();
|
|
}
|
|
// decamelize('someDatabaseFieldName', ' ') -> 'some database field name'
|
|
// decamelize('someLabelThatNeedsToBeCamelized', '-') -> 'some-label-that-needs-to-be-camelized'
|
|
// decamelize('someJavascriptProperty', '_') -> 'some_javascript_property'
|
|
```
|