import 'dart:convert'; import 'dart:typed_data'; import 'print.dart'; extension StringExtension on String { bool get isUrl { return RegExp(r'^(http|https|ftp)://').hasMatch(this); } int compareToLower(String other) { return toLowerCase().compareTo( other.toLowerCase(), ); } List get encodeUtf16LeWithBom { final byteData = ByteData(length * 2); final bom = [0xFF, 0xFE]; for (int i = 0; i < length; i++) { int charCode = codeUnitAt(i); byteData.setUint16(i * 2, charCode, Endian.little); } return bom + byteData.buffer.asUint8List(); } Uint8List? get getBase64 { final regExp = RegExp(r'base64,(.*)'); final match = regExp.firstMatch(this); final realValue = match?.group(1) ?? ''; if (realValue.isEmpty) { return null; } try { return base64.decode(realValue); } catch (e) { return null; } } bool get isRegex { try { RegExp(this); return true; } catch (e) { commonPrint.log(e.toString()); return false; } } } extension StringExtensionSafe on String? { String getSafeValue(String defaultValue) { if (this == null || this!.isEmpty) { return defaultValue; } return this!; } }