string_extensions 0.7.4
string_extensions: ^0.7.4 copied to clipboard
Useful String extensions to save you time in production. Feel free to contribute with PR.
0.7.4 Security & Bug fixes #
- Adds
endsWithAnymethod to check whether aStringends with any pattern provided in aList - Fixes division by zero vulnerability in
readTimemethod by adding parameter validation - Fixes array index out of bounds issues in
charOccurences,mostFrequent, andtoCamelCasemethods - Improves
isIpv6validation security by replacing complex regex withUri.tryParse()to prevent ReDoS attacks - Improves
isUrlvalidation security by replacing regex withUri.tryParse()and adding scheme validation
0.7.3 Improvements #
- Improves
after&beforemethods to include whitespace in patterns - Adds topics at the library
0.7.2 New parameter #
- Adds a new optional parameter,
defaultToBlank, to theafterandbeforemethods. ThedefaultToBlankparameter allows the user to specify whether to return an empty string or the original string when no pattern is found. By default, it is set totrue, meaning an empty string is returned. This enhancement improves the flexibility and usability of the methods.
0.7.1 #
- Changes
intlversion constraints from0.19.0to>=0.18.1
0.7.0 #
- Library now also extends
Stringso there is no need of using the bang operator onStrings that are notnull - Bumps dependencies
0.6.14 Code clean up #
- Removes Flutter from dependencies
- Improves documentation
0.6.13 New Extensions #
nullIf(String? comparisonString): ReturnsnullifStringequalscomparisonString. Otherwise return theStringas is.emptyIf(String? comparisonString): Returns emptyStringif it equalts tocomparisonString. Otherwise return theStringas is.replaceFirst(String pattern, String replacement): Returns a new string with the first occurrence of the given pattern replaced with the replacement string.replaceLast(String pattern, String replacement): Returns a new string with the last occurrence of the given pattern replaced with the replacement string.
0.6.12 New Extensions #
insertAt: Inserts aStringat a specified indexsplitLines: Splits theStringinto aListof lines ('\r\n' or '\n')isJson: Returns true if theStringis a valid JSON string
0.6.11 New Extensions & SDK Version constraints bump #
- Bumps SDK constraint from 3.0.0 to 4.0.0
- Adds screenshots in project
New methods
hasWhitespace: Checks whether theStringhas any whitespaceisLettersOnly: Checks whether theStringis consisted of only letters (Latin & Greek atm)
0.6.10 Bug fixes & New Extensions #
New methods
greekTimeLiteralToEnglish: Transforms the Greek μ.μ. time literal to the equivalent English PMcontainsAnyGreekCharacters: Checks whether aStringcontains any Greek characterisUnique: Checks whether theStringis consisted of unique characterscommonCharacters: Returns a Set of common characters between twoStringsuncommonCharacters: Returns a Set of uncommon characters between twoStringscontainsAllCharacters: Checks whether theStringcontains all characters
0.6.9 Bug fixes & Optimisations #
- Improves
mostFrequent()method's performance. Also addsignoreSpacesflag to ignore whitespace from character count - Fixes
removeWhitespacemethod to properly remove all spaces - Fixes
toGreekUppercasemethod missing letter "omicron - Ό" from mapping
0.6.8 Fixes failing test #
0.6.7 New Extensions & Optimizations #
New methods
isSwiftCode: A static method to check whether the providedStringis a valid Swift code. SourcedigitCount: A static method to count (if any) digits in theStringisAscii: A static method to check whether aStringis consisted only from ASCII charactersisAnagramOf(String s): A static method to check whether the providedsStringis anagram of the extendedStringisPalindrome: A static method to check whether theStringis palindromeisMixedCase: A static method to check whether theStringis consisted of both upper & lower case letters
Optimized methods
- Optimizes
replaceGreekmethod - Optimizes
toGreekUppercasemethod - Optimizes
getLevenshteinby using Wagner-Fisher algorithm
0.6.6 New Extensions #
isIban: A static method to check whether the providedStringis a valid IBAN. SourceisGreekId: A static method to check whether the providedStringis a valid Greek Identification Number. SourceisLowerCase: Checks whether theStringis in upper caseisUpperCase: Checks whether theStringis in lower caseswapCase(): Swaps the case in theString.
String foo = 'Hello World';
String swapped = foo.swapCase(); // returns 'hELLO wORLD'
0.6.5 Code Improvements #
Updates project dependencies, to improve pub.dev score.
0.6.4 New Extensions #
toGreekUpperCase(): Properly uppercases Greek letters, removing the tones.
String greek = 'Τι κάνεις πώς τα περνάς φίλτατέ μου';
String wrongUpperCase = greek.toUpperCase(); // returns 'ΤΙ ΚΆΝΕΙΣ ΠΏΣ ΤΑ ΠΕΡΝΆΣ ΦΊΛΤΑΤΈ ΜΟΥ'
String correctUpperCase = greek.toGreekUpperCase(); // returns 'ΤΙ ΚΑΝΕΙΣ ΠΩΣ ΤΑ ΠΕΡΝΑΣ ΦΙΛΤΑΤΕ ΜΟΥ'
0.6.3 Bug Fixes & Documentation improvements #
- Fixes
truncate(length)method. If theStringis equal tolengththen theStringshould be returned as it is.
0.6.2 New Extensions & Documentation improvements #
toLeet: Transform theStringto 1337 alphabet. The letters are randomized since each letter can have multiple variations.
String foo = 'esentis';
String leet = foo.toLeet ; // returns '€5£п+!$'
isCreditCard: Checks if the providedStringis a valid credit card number using Luhn algorithmremoveWhiteSpace: Removes all white space from the providedString.
0.6.1 New Extensions #
formatFileSize: Formats aStringrepresenting bytes to show the proper file size.
String foo = '24117248';
String formatted = foo.formatFileSize; // returns '23 MB'
0.6.0 Breaking Changes, New Extensions & Bug Fixes #
- Project depends on
crypto(3.0.2) due to newmd5method wich returns the MD5 hash of theString. - Bug fixes for various methods,
after,before,toTitleCase,openCloseWrappers,removeFirstAndLastAny. - Various improvements.
0.5.1 Bug fix #
- Fixes
titleCasenot trimming whitespaces.
0.5.0 Breaking Changes & New Extensions #
- All methods will now trim the
Stringbefore operations. toSnakeCase: Converts aStringto snake case format.
0.4.5 New extensions #
addAfter: Adds aStringafter the first occurence of a specific pattern.addBefore: Adds aStringbefore the first occurence of a specific pattern.
0.4.4 New Extensions #
-
removeAfter: Removes everything after the first occurence of a specific pattern. -
removeBefore: Removes everything before the first occurence of a specific pattern.
Thanks to zonaro
-
wrap: Wraps aStringbetween twoStrings. -
getOppositeChar: Returns the opposite wrap char of theString. -
isOpenWrapChar: Check ifStringis a open wrap char:<,{,[,",'. -
isCloseWrapChar: Checks ifStringis a close wrap char:>,},],",'. -
removeFirstAny: Continuously removes from the beginning of aStringanyStringcontained in [patterns]. -
removeLastAny: Continuously removes from the end of aStringanyStringcontained in [patterns]. -
removeFirstAndLastAny: Continuously removes from the beggining and end of aStringanyStringcontained in [patterns]. -
removeLastEqual: Remove aStringfrom the end of other string if equal [pattern]. -
removeFirstEqual: Remove aStringin the beginning of other string if equal [pattern]. -
removeFirstAndLastEqual: RemoveStringfrom the beginning and the end ofStringif equal [pattern]. -
containsAny: Check ifStringcontains anyStrings of [list]. -
containsAll: Check ifStringcontains allStrings of [list].
0.4.3 New Extensions #
Thanks to zonaro
-
isBlank: Checks if aStringisnullempty or contains only whitespaces. -
isNotBlank: Checks if aStringis NOTnullempty or contains only whitespaces. -
asIf: Compares aStringto another and returns the first if equal, otherwise returns the second one. -
ifBlank(String default): Checks if aStringis blank and gives it a default value.
0.4.2 Minor improvements & New Extensions #
- Returns the
Stringafter a character / word.
after(String pattern)
- Returns the
Stringbefore a character / word.
before(String pattern)
- Gets Jaro distance to check
Stringsimilarity. The higher the number the similar the twoStrings/
getJaro(String wordToCompare)
0.4.1 Minor improvements & New Extensions #
- Converts the
Stringto aboolvalue if possible.
tooBool
0.4.0 Breaking Changes & New Extensions #
Breaking changes #
Following extension methods are now created using get and can now being accessed without ().
- capitalize
- countWords
- removeNumbers
- onlyLatin
- onlyGreek
- isNull
- isIpv4
- isIpv6
- isUrl
- isDate
- isMail
- isNumber
- isStrongPassword
- isGuid
- isLatin
- isGreek
- onlyNumbers
- removeLetters
- charOccurences
- mostFrequent
- reverse
- toSlug
- toCamelCase
- toTitleCase
- toArray
- replaceGreek
- stripHtml
- hasSameCharacters
- shuffle
New Extensions
- Truncates
Stringwith "..." when more thanncharacters.
truncate(int maxChars)
- Truncates
Stringin the middle with "..." keeping maxncharacters.
truncateMiddle(int maxChars)
- Quotes a
Stringadding " at the start & at the end.
quote
- Trims leading and trailing spaces, so as extra spaces in between words.
trimAll
0.3.5 New Extensions #
- Returns the month name of the
DateTime(inStringformat).
getMonthFromDate(locale:'en')
- Returns the first day of the month from the provided
DateTime(inStringformat).
firstDayOfMonth(locale:'en')
- Returns the last day of the month from the provided
DateTime(inStringformat).
latsDayOfMonth(locale:'en')
- Returns left side of the
Stringstarting fromchar.
leftOf(String char)
- Returns right side of the
Stringstarting fromchar.
rightOf(String char)
0.3.4 New Extensions #
-
formatWithMasknow accepts optional parameterspecialCharwhich defaults to '#' -
Add a
Stringat the beginning of yourString.
prepend(String prefix)
- Adds
-operator subtracting a text from aString - Returns the day name of the
DateTime(inStringformat).
String date = '2021-10-23';
String day = date.getDayFromDate(); // returns 'Saturday'
String grDay = date.getDayFromDate(locale:'el'); // returns 'Σάββατο'
0.3.3 New Extensions #
- Removes the first
ncharacters of theString.
removeFirst(int n)
- Removes the last
ncharacters of theString.
removeLast(int n)
- Trims the
Stringto have exactlyncharacters. Ifnis larger than theStringlength, the sameStringis returned.
maxChars(int n)
- Reverses slash provided the slash direction (
int). 0 for / to \ and 1 for \ to /.
reverseSlash(int direction)
- Returns the character at
index.
charAt(int index)
- Checks if a string is
null.
isNull()
- Do something if a string is
null.
ifNull(Function())
- Provide default value if a string is
null.
defaultValue(String defaultValue)
- Append a
Stringat the end of yourString.
append(String suffix)
- Formats the
Stringto properly show currency amount.
toPriceFormat({String? currencySymbol})
0.3.2 Bug Fixes & New Extensions #
Bug fixes & New Extensions #
- Returns only the Greek characters of the
String.
onlyGreek()
- Checkes whether the
Stringhas only Latin characters.
isLatin()
- Checkes whether the
Stringhas only Greek characters.
isGreek()
onlyLetters()is nowonlyLatin()characters.- The
countWordsextension now correctly counts only words, excluding numbers and symbols from words. For example,Hello 5 2asd friend !word count will return 3 words.
0.3.1 New extensions #
-
Added
String?operators>, >=, <, <=to compareStringlengths. -
isIn(Iterable<String>), checks if a givenStringis in anIterable<String>. -
formatWithMask(String mask), formats aStringwith a specific mask.
0.3.0 New extensions & Code improvements #
Successfully converts library to extend String? from String.
Further code optimization and bug fixes.
New extensions
- Converts the
Stringto anumvalue if possible, else returnsnull.
toNum()
- Converts the
Stringtointif possible, else returnsnull.
toInt()
- Converts the
Stringtodoubleif possible, else returnsnull.
toDouble()
0.2.4 New extensions #
Improves and renames toStringArray (toArray now)
Adds a new extension that counts specific charater occurences in a String.
charCount(String char)
0.2.3 New extensions #
- Squeezes a
Stringto a character
squeeze(String x);
- Check if the
Stringis consisted of same characters.
hasSameCharacters();
- Shuffles the word's letters.
shuffle();
- Gets the Levenshtein distance of two
String
getLevenshtein();
- Checks if a
Stringis a validUrl.
isUrl();
- Checks if a
Stringis a validDate.
isDate();
0.2.2 New extensions #
- Repeats a
Stringx times
repeat(int x);
- Check if the
Stringis a valid Ipv6
isIpv6();
- Check if the
Stringis anum
isNumber();
- An extension that makes easier handling empty strings.
ifEmpty(()=>print('The string is empty'));
0.2.1 Downgrade test library version #
Some projects were breaking due to they depending on test_api:3.0.0 version.
0.2.0 Adds tests #
0.1.4 New extension #
Method to check whether a String is a valid Guid.
isGuid()
0.1.3 New extensions #
- Method to get a
List<String>from aString.
toStringArray()
- Method to strip all
HTMLcode from aString.
stripHtml()
- Method to check whether a
Stringis a strong password.
isStrongPassword()
0.1.2 New extensions & Code refactor #
-
Adds isEmpty checks on all extensions.
-
Given a
Stringand a pattern, finds the starting indices of all occurrences of the pattern in theString.findPattern({required String pattern})
0.1.1 New extensions #
Useful method to normalize greek text for more performant text searches.
replaceGreek()
0.1.0 New extensions #
first({int count})
last({int count})
toSlug()
