diff --git a/README.md b/README.md
index bd848c859..b9ce0b0d5 100644
--- a/README.md
+++ b/README.md
@@ -2042,11 +2042,16 @@ const sortCharactersInString = str =>
Converts a string to camelcase.
-Use `replace()` to remove underscores, hyphens, and spaces and convert words to camelcase.
+Break the string into words and combine them capitalizing the first letter of each word.
+For more detailed explanation of this Regex, [visit this Site](https://regex101.com/r/bMCgAB/1).
```js
-const toCamelCase = str =>
- str.replace(/^([A-Z])|[\s-_]+(\w)/g, (match, p1, p2, offset) => p2 ? p2.toUpperCase() : p1.toLowerCase());
+const toCamelCase = str => {
+ let s = str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
+ .map(x => x.slice(0,1).toUpperCase() + x.slice(1).toLowerCase())
+ .join('');
+ return s.slice(0,1).toLowerCase() + s.slice(1)
+ }
// toCamelCase("some_database_field_name") -> 'someDatabaseFieldName'
// toCamelCase("Some label that needs to be camelized") -> 'someLabelThatNeedsToBeCamelized'
// toCamelCase("some-javascript-property") -> 'someJavascriptProperty'
@@ -2057,24 +2062,16 @@ const toCamelCase = str =>
### toKebabCase
-Converts a string to [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).
-Breaks the string into words.
-A word is defined as following:-
--> Beginning with two or more capital letters, e.g. XML or FM
--> Begin with a capital letter followed by lower case letters with optional trailing numbers, e.g. Hello or Http2
--> Contain nothing but lower case letters with optional trailing numbers, e.g. hello or http2
--> Individual upper letters, e.g T.M.N.T
--> Groups of numbers, e.g. 555-555-5555
+Converts a string to kebab case.
-For more detailed explanation of this Regex [Visit this Site](https://regex101.com/r/bMCgAB/1)
+Break the string into words and combine them using `-` as a separator.
+For more detailed explanation of this Regex, [visit this Site](https://regex101.com/r/bMCgAB/1).
```js
-const toKebabCase = str => {
- let regex = rx = /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g;
- return str.match(regex).map(x =>{
- return x.toLowerCase();
- }).join('-');
-}
+const toKebabCase = str =>
+ str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
+ .map(x => x.toLowerCase())
+ .join('-');
// toKebabCase("camelCase") -> 'camel-case'
// toKebabCase("some text") -> 'some-text'
// toKebabCase("some-mixed_string With spaces_underscores-and-hyphens") -> 'some-mixed-string-with-spaces-underscores-and-hyphens'
@@ -2086,17 +2083,22 @@ const toKebabCase = str => {
### toSnakeCase
-Converts a string to snakecase.
+Converts a string to snake case.
-Use `replace()` to add underscores before capital letters, convert `toLowerCase()`, then `replace()` hyphens and spaces with underscores.
+Break the string into words and combine them using `_` as a separator.
+For more detailed explanation of this Regex, [visit this Site](https://regex101.com/r/bMCgAB/1).
```js
-const toSnakeCase = str =>
- str.replace(/(\w)([A-Z])/g, '$1_$2').replace(/[\s-_]+/g, '_').toLowerCase();
+const toSnakeCase = str =>{
+ str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
+ .map(x => x.toLowerCase())
+ .join('_');
// toSnakeCase("camelCase") -> 'camel_case'
// toSnakeCase("some text") -> 'some_text'
// toSnakeCase("some-javascript-property") -> 'some_javascript_property'
// toSnakeCase("some-mixed_string With spaces_underscores-and-hyphens") -> 'some_mixed_string_with_spaces_underscores_and_hyphens'
+// toKebabCase("AllThe-small Things") -> "all_the_smal_things"
+// toKebabCase('IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML') -> "i_am_listening_to_fm_while_loading_different_url_on_my_browser_and_also_editing_some_xml_and_html"
```
[⬆ back to top](#table-of-contents)
diff --git a/docs/index.html b/docs/index.html
index f0304ec3e..a49d80a82 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1291,30 +1291,27 @@ Combine characters to get a string using join('').
Converts a string to camelcase.
-Use replace() to remove underscores, hyphens, and spaces and convert words to camelcase.
const toCamelCase = str =>
- str.replace(/^([A-Z])|[\s-_]+(\w)/g, (match, p1, p2, offset) => p2 ? p2.toUpperCase() : p1.toLowerCase());
+Break the string into words and combine them capitalizing the first letter of each word.
+For more detailed explanation of this Regex, visit this Site.
+const toCamelCase = str => {
+ let s = str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
+ .map(x => x.slice(0,1).toUpperCase() + x.slice(1).toLowerCase())
+ .join('');
+ return s.slice(0,1).toLowerCase() + s.slice(1)
+ }
// toCamelCase("some_database_field_name") -> 'someDatabaseFieldName'
// toCamelCase("Some label that needs to be camelized") -> 'someLabelThatNeedsToBeCamelized'
// toCamelCase("some-javascript-property") -> 'someJavascriptProperty'
// toCamelCase("some-mixed_string with spaces_underscores-and-hyphens") -> 'someMixedStringWithSpacesUnderscoresAndHyphens'
Converts a string to kebab case. -Breaks the string into words. -A word is defined as following:- --> Beginning with two or more capital letters, e.g. XML or FM --> Begin with a capital letter followed by lower case letters with optional trailing numbers, e.g. Hello or Http2 --> Contain nothing but lower case letters with optional trailing numbers, e.g. hello or http2 --> Individual upper letters, e.g T.M.N.T --> Groups of numbers, e.g. 555-555-5555
-For more detailed explanation of this Regex Visit this Site
-const toKebabCase = str => {
- let regex = rx = /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g;
- return str.match(regex).map(x =>{
- return x.toLowerCase();
- }).join('-');
-}
+Converts a string to kebab case.
+Break the string into words and combine them using - as a separator.
+For more detailed explanation of this Regex, visit this Site.
+const toKebabCase = str =>
+ str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
+ .map(x => x.toLowerCase())
+ .join('-');
// toKebabCase("camelCase") -> 'camel-case'
// toKebabCase("some text") -> 'some-text'
// toKebabCase("some-mixed_string With spaces_underscores-and-hyphens") -> 'some-mixed-string-with-spaces-underscores-and-hyphens'
@@ -1322,14 +1319,19 @@ A word is defined as following:-
// toKebabCase('IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML') -> "i-am-listening-to-fm-while-loading-different-url-on-my-browser-and-also-editing-xml-and-html"
Converts a string to snakecase.
-Use replace() to add underscores before capital letters, convert toLowerCase(), then replace() hyphens and spaces with underscores.
const toSnakeCase = str =>
- str.replace(/(\w)([A-Z])/g, '$1_$2').replace(/[\s-_]+/g, '_').toLowerCase();
+Converts a string to snake case.
+Break the string into words and combine them using _ as a separator.
+For more detailed explanation of this Regex, visit this Site.
+const toSnakeCase = str =>{
+ str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
+ .map(x => x.toLowerCase())
+ .join('_');
// toSnakeCase("camelCase") -> 'camel_case'
// toSnakeCase("some text") -> 'some_text'
// toSnakeCase("some-javascript-property") -> 'some_javascript_property'
// toSnakeCase("some-mixed_string With spaces_underscores-and-hyphens") -> 'some_mixed_string_with_spaces_underscores_and_hyphens'
+// toKebabCase("AllThe-small Things") -> "all_the_smal_things"
+// toKebabCase('IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML') -> "i_am_listening_to_fm_while_loading_different_url_on_my_browser_and_also_editing_some_xml_and_html"
Truncates a string up to a specified length.