Skip to content

Commit 501b997

Browse files
authored
Add files via upload
0.0.4
1 parent d82e1ee commit 501b997

File tree

6 files changed

+338
-11
lines changed

6 files changed

+338
-11
lines changed

common_utilities/CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
version 0.0.3
1+
## version 0.0.3
22
- Over 30 string utils functions.
33
- Encapsulation improvement.
44
- Added how to use.
5+
6+
7+
## version 0.0.4
8+
- Fix StringUtils extension.

common_utilities/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ A Dart Common Utility Package . That contain useful functions for different clas
44

55
Includes a set of **String** , **Int** , **List** functions and so on. that make your work much faster and easier.
66

7-
**version 0.0.3 Includes only String utils**.
7+
**version 0.0.4 Includes only String utils**.
88

99
## String Utils
1010
Includes over 30 useful string functions such as :
Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
11
library common_utilities;
2-
import 'package:common_utilities/src/StringUtils.dart';
32

43

5-
extension StringUtil on String {
4+
export 'src/extensions.dart';
5+
66

7-
CommonStringUtils StringUtils (){
8-
var instance = CommonStringUtils.stringUtils;
9-
instance.construct(this);
10-
return instance;
11-
}
127

13-
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import 'string_utils.dart';
2+
3+
extension StringUtil on String {
4+
5+
CommonStringUtils StringUtils (){
6+
var instance = CommonStringUtils.stringUtils;
7+
instance.construct(this);
8+
return instance;
9+
}
10+
11+
}
Lines changed: 318 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,318 @@
1+
import 'package:intl/intl.dart';
2+
import 'dart:convert' show utf8, base64;
3+
4+
class CommonStringUtils {
5+
6+
static final String _exceptionTag = 'Exception on StringUtils : ';
7+
static final CommonStringUtils stringUtils = CommonStringUtils._();
8+
String _mainStr = '';
9+
10+
CommonStringUtils._();
11+
12+
void construct(String mainStr){
13+
this._mainStr = mainStr;
14+
}
15+
16+
17+
String subStringBetween(String startStr,String endStr){
18+
String result;
19+
try{
20+
final startIndex = _mainStr.indexOf(startStr);
21+
final endIndex = _mainStr.indexOf(endStr, startIndex + startStr.length);
22+
result = _mainStr.substring(startIndex + startStr.length, endIndex);
23+
}
24+
catch (exc) {
25+
print('$_exceptionTag$exc');
26+
}
27+
28+
return result;
29+
}
30+
31+
32+
List<String> subStringsBetween(String startStr,String endStr){
33+
List<String> results = List<String>();
34+
_mainStr.split('$endStr').forEach((element) {
35+
if(element!=null&&element.isNotEmpty){
36+
results.add(element.substring(element.indexOf('$startStr')+startStr.length));
37+
}
38+
});
39+
return results;
40+
}
41+
42+
43+
String subStringAfter(String targetStr,[bool lastIndex = false]){
44+
String result;
45+
try{
46+
lastIndex ?
47+
result = _mainStr.substring(_mainStr.lastIndexOf('$targetStr')+targetStr.length)
48+
:
49+
result = _mainStr.substring(_mainStr.indexOf('$targetStr')+targetStr.length);
50+
}
51+
catch (exc) {
52+
print('$_exceptionTag$exc');
53+
}
54+
55+
return result;
56+
}
57+
58+
59+
String subStringBefore(String targetStr,[bool lastIndex = false]){
60+
String result;
61+
try{
62+
lastIndex ?
63+
result = _mainStr.substring(0,_mainStr.lastIndexOf('$targetStr'))
64+
:
65+
result = _mainStr.substring(0,_mainStr.indexOf('$targetStr'));
66+
}
67+
catch (exc) {
68+
print('$_exceptionTag$exc');
69+
}
70+
return result;
71+
}
72+
73+
74+
String insertAt (int index,String wordStr){
75+
var selectStr = _mainStr[index];
76+
return _mainStr.replaceFirst('$selectStr', '$selectStr'+'$wordStr');
77+
}
78+
79+
80+
String removeAt (int index){
81+
var selectStr = _mainStr[index];
82+
return _mainStr.replaceFirst('$selectStr', '');
83+
}
84+
85+
86+
String insertAfter(String targetStr,String word){
87+
return _mainStr.replaceFirst('$targetStr', '$targetStr'+'$word');
88+
}
89+
90+
91+
String insertAfterEvery(String targetStr,String word){
92+
return _mainStr.replaceAll('$targetStr', '$targetStr'+'$word');
93+
}
94+
95+
96+
String removeAfter(String targetStr){
97+
var tempTarget = _mainStr.substring(_mainStr.indexOf('$targetStr')+targetStr.length);
98+
return _mainStr.replaceFirst('$tempTarget', '');
99+
}
100+
101+
102+
String removeBefore(String targetStr){
103+
var tempTarget = _mainStr.substring(0,_mainStr.indexOf('$targetStr'));
104+
return _mainStr.replaceFirst('$tempTarget', '');
105+
}
106+
107+
108+
bool isNumericInt(){
109+
110+
final validCharacters = RegExp(r'^[0-9]+$');
111+
112+
if(validCharacters.hasMatch(_mainStr)){
113+
return true;
114+
}
115+
else {
116+
return false;
117+
}
118+
119+
}
120+
121+
122+
bool isNumericDouble() {
123+
if (_mainStr == null) {
124+
return false;
125+
}
126+
return double.tryParse(_mainStr) != null;
127+
}
128+
129+
130+
bool isAlphabetic(bool withSpace){
131+
132+
final validCharacters = withSpace ? RegExp(r'^[a-zA-Z ]+$') : RegExp(r'^[a-zA-Z]+$');
133+
134+
if(validCharacters.hasMatch(_mainStr)){
135+
return true;
136+
}
137+
else {
138+
return false;
139+
}
140+
141+
}
142+
143+
144+
bool isUpperCase(){
145+
146+
final validCharacters = _mainStr.toUpperCase();
147+
if(_mainStr == validCharacters && RegExp(r'^[a-zA-Z]+').hasMatch(_mainStr)){
148+
return true;
149+
}
150+
else {
151+
return false;
152+
}
153+
154+
}
155+
156+
157+
bool isAlphaNumeric(bool withSpace){
158+
159+
final validCharacters = withSpace ? RegExp(r'^[a-zA-Z0-9 ]+$') : RegExp(r'^[a-zA-Z0-9]+$');
160+
161+
if(validCharacters.hasMatch(_mainStr)){
162+
return true;
163+
}
164+
else {
165+
return false;
166+
}
167+
168+
}
169+
170+
171+
bool isBlank(){
172+
173+
final validCharacters = RegExp(r'^[ ]+$');
174+
175+
if(validCharacters.hasMatch(_mainStr)){
176+
return true;
177+
}
178+
else {
179+
return false;
180+
}
181+
182+
}
183+
184+
185+
bool isContainSpecialChar(){
186+
187+
final validCharacters = RegExp(r'^[a-zA-Z0-9 ]+$');
188+
189+
if(!validCharacters.hasMatch(_mainStr)){
190+
return true;
191+
}
192+
else {
193+
return false;
194+
}
195+
196+
}
197+
198+
199+
bool isValidCharacters(RegExp validCharacters){
200+
201+
try{
202+
if(validCharacters.hasMatch(_mainStr)){
203+
return true;
204+
}
205+
else {
206+
return false;
207+
}
208+
}
209+
catch (exc){
210+
print('$_exceptionTag$exc');
211+
return null;
212+
}
213+
214+
}
215+
216+
217+
String convertEnglishNumberToPersian() {
218+
const english = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
219+
const farsi = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
220+
221+
for (int i = 0; i < english.length; i++) {
222+
_mainStr = _mainStr.replaceAll(english[i], farsi[i]);
223+
}
224+
return _mainStr;
225+
}
226+
227+
228+
String convertPersianNumberToEnglish() {
229+
const english = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
230+
const farsi = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
231+
232+
for (int i = 0; i < farsi.length; i++) {
233+
_mainStr = _mainStr.replaceAll(farsi[i], english[i]);
234+
}
235+
return _mainStr;
236+
}
237+
238+
239+
String convertToMoneyFormat(){
240+
final formatter = new NumberFormat("#,###", "en_US");
241+
if(isNumericDouble()){
242+
if(isNumericInt()){
243+
return formatter.format(int.parse(_mainStr));
244+
}
245+
return formatter.format(double.parse(_mainStr));
246+
}
247+
else{
248+
return null;
249+
}
250+
}
251+
252+
253+
int countWords(String wordStr){
254+
255+
int wordCount = 0;
256+
wordCount = '$wordStr'.allMatches('$_mainStr').length;
257+
return wordCount;
258+
259+
}
260+
261+
262+
int countLines(){
263+
264+
int lineCount = 0;
265+
lineCount = '\n'.allMatches('$_mainStr').length;
266+
return lineCount+1;
267+
268+
}
269+
270+
271+
String reverse() {
272+
return _mainStr.split('').reversed.join();
273+
}
274+
275+
276+
String reverseWords() {
277+
return _mainStr.split(' ').reversed.join(' ');
278+
}
279+
280+
281+
String removeBlankLines(){
282+
return _mainStr.replaceAll(new RegExp(r'(?:[\t ]*(?:\r?\n|\r))+'), '\n');
283+
}
284+
285+
286+
String removeLinesThatContain(String wordStr){
287+
var lines = _mainStr.split('\n');
288+
for(var lineItem in _mainStr.split('\n')){
289+
if(lineItem.contains('$wordStr')){
290+
lines.remove(lineItem);
291+
}
292+
}
293+
return lines.join('\n');
294+
}
295+
296+
bool isEmail(){
297+
var emailValidation = RegExp(r"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,253}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,253}[a-zA-Z0-9])?)*$");
298+
if(emailValidation.hasMatch(_mainStr)){
299+
return true;
300+
}
301+
else{
302+
return false;
303+
}
304+
}
305+
306+
String convertToBase64(){
307+
return base64.encode(utf8.encode(_mainStr));
308+
}
309+
310+
String convertBase64ToString(){
311+
return utf8.decode(base64.decode(_mainStr));
312+
}
313+
314+
List<int> convertToUTF8(){
315+
return utf8.encode('$_mainStr');
316+
}
317+
318+
}

common_utilities/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: common_utilities
22
description: A Dart Common Utility Package .
3-
version: 0.0.3
3+
version: 0.0.4
44
homepage: https://github.com/m-r-davari/Flutter-Packages
55

66
environment:

0 commit comments

Comments
 (0)