Initial commit

This commit is contained in:
wgh19
2024-05-13 09:36:23 +08:00
commit b095643cbc
160 changed files with 9956 additions and 0 deletions

86
lib/utils/ext.dart Normal file
View File

@@ -0,0 +1,86 @@
extension ListExt<T> on List<T>{
/// Remove all blank value and return the list.
List<T> getNoBlankList(){
List<T> newList = [];
for(var value in this){
if(value.toString() != ""){
newList.add(value);
}
}
return newList;
}
T? firstWhereOrNull(bool Function(T element) test){
for(var element in this){
if(test(element)){
return element;
}
}
return null;
}
void addIfNotNull(T? value){
if(value != null){
add(value);
}
}
}
extension StringExt on String{
///Remove all value that would display blank on the screen.
String get removeAllBlank => replaceAll("\n", "").replaceAll(" ", "").replaceAll("\t", "");
/// convert this to a one-element list.
List<String> toList() => [this];
String _nums(){
String res = "";
for(int i=0; i<length; i++){
res += this[i].isNum?this[i]:"";
}
return res;
}
String get nums => _nums();
String setValueAt(String value, int index){
return replaceRange(index, index+1, value);
}
String? subStringOrNull(int start, [int? end]){
if(start < 0 || (end != null && end > length)){
return null;
}
return substring(start, end);
}
String replaceLast(String from, String to) {
if (isEmpty || from.isEmpty) {
return this;
}
final lastIndex = lastIndexOf(from);
if (lastIndex == -1) {
return this;
}
final before = substring(0, lastIndex);
final after = substring(lastIndex + from.length);
return '$before$to$after';
}
static bool hasMatch(String? value, String pattern) {
return (value == null) ? false : RegExp(pattern).hasMatch(value);
}
bool _isURL(){
final regex = RegExp(
r'^((http|https|ftp)://)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-|]*[\w@?^=%&/~+#-])?$',
caseSensitive: false);
return regex.hasMatch(this);
}
bool get isURL => _isURL();
bool get isNum => double.tryParse(this) != null;
}