change_case 1.0.2 change_case: ^1.0.2 copied to clipboard
An extension on String to transform a string between camelCase, PascalCase, Capital Case, snake_case, param-case, CONSTANT_CASE and others.
Change Case #
Transform a string between
camelCase
,PascalCase
,Capital Case
,snake_case
,param-case
,CONSTANT_CASE
and others.
Core #
These functions come with package:change_case
toCamelCase #
Transform into a string with the separator denoted by the next word capitalized.
'test string'.toCamelCase(); // 'testString'
toCapitalCase #
Transform into a space separated string with each word capitalized.
'test string'.toCapitalCase(); // 'Test String'
toConstantCase #
Transform into upper case string with an underscore between words.
'test string'.toConstantCase(); // 'TEST_STRING'
toDotCase #
Transform into a lower case string with a period between words.
'test string'.toDotCase(); // 'test.string'
toHeaderCase #
Transform into a dash separated string of capitalized words.
'test string'.toHeaderCase(); // 'Test-String'
toNoCase #
Transform into a lower cased string with spaces between words.
'testString'.toNoCase(); // 'test string'
toParamCase #
Transform into a lower cased string with dashes between words.
'test string'.toParamCase(); // 'test-string'
toPascalCase #
Transform into a string of capitalized words without separators.
'test string'.toPascalCase(); // 'TestString'
toPathCase #
Transform into a lower case string with slashes between words.
'test string'.toPathCase(); // 'test/string'
// provide a separator override default '/'
'test string'.toPathCase(r'\'); // 'test\string'
toSentenceCase #
Transform into a lower case with spaces between words, then capitalize the string.
'testString'.toSentenceCase(); // 'Test string'
toSnakeCase #
Transform into a lower case string with underscores between words.
'test string'.toSnakeCase(); // 'test_string'
Other Case Utilities #
toTitleCase #
Transform a string into title case following English rules.
'a simple test'.toTitleCase(); // 'A Simple Test'
toSwapCase #
Transform a string by swapping every character from upper to lower case, or lower to upper case.
'Test String'.toSwapCase(); // 'tEST sTRING'
isLowerCase #
Returns
true
if the string is lower case only.
'test string'.isLowerCase(); // true
isUpperCase #
Returns
true
if the string is upper case only.
'test string'.isUpperCase(); // false
toLowerFirstCase #
Transforms the string with the first character in lower cased.
'TEST'.toLowerFirstCase(); // 'tEST'
toUpperFirstCase #
Transforms the string with the first character in upper cased.
'test'.toUpperFirstCase(); // 'Test'
toSpongeCase #
Transform into a string with random capitalization applied.
'Test String'.toSpongeCase(); // 'tEst stRINg'
Configuration #
package:change_case
has a configuration file,ChangeCaseConfig
, that you can use to updatesplitPatterns
,stripPatterns
, and theplaceholder
which will be applied to most function listed above.
I don't suggest changing these unless you know what you are doing 😁
Patterns #
Change case uses RegExp
to split & replace characters of the string.
While they are great at what they do, you may want to update or add new patterns.
These patterns can be updated by using the ChangeCaseConfig
.setUp(splitPatterns: [...], stripPatterns: [...])
The default patterns are:
Note:
(?:•)*
is used to match any "•
" (placeholder
) character.
-
Split
-
ChangeCaseConfig.lowerOrNumToUpperPattern
// matches lowercase or numeric char to uppercase char RegExp('([a-z0-9])(?:•)*([A-Z])')
-
ChangeCaseConfig.lowerOrNumToUpperPattern
// matches uppercase char to uppercase followed by lowercase char RegExp('([A-Z])(?:•)*([A-Z][a-z])')
-
-
Strip
-
ChangeCaseConfig.upperToLowerPattern
// matches any non-alphanumeric char RegExp('[^A-Z0-9]+', caseSensitive: false)
-
ChangeCaseConfig.lowerToNumOrUpperPattern
(Not included in default, but can be used to add or replace)// matches lowercase char to numeric or uppercase char // changes the behavior to `word2019 -> word 2019` and `minifyURLs -> minify urls` RegExp('([a-z])([A-Z0-9])')
-
Placeholder #
can be configured with
ChangeCaseConfig
.setUp(placeholder: ...)
The placeholder
is a string that is added and used as a reference to configure each case.
The default placeholder is "•
"
For example:
final string = 'test stringCase';
print(string.toCamelCase()); // expected: 'testStringCase'
// runs splitPatterns, returns "test string•Case"
// runs stripPatterns, returns "test•string•Case"
// runs camel case logic, returns "testStringCase"
This string needs to be a unique character that is not used in the string.