mask method

String mask({
  1. int start = 0,
  2. int? end,
  3. String mask = '*',
})

Masks the characters from start to end with mask.

Implementation

String mask({
  int start = 0,
  int? end,
  String mask = '*',
}) {
  if (this == null || this!.isEmpty) return '';
  if (mask.isEmpty) {
    throw ArgumentError.value(mask, 'mask', 'must not be empty');
  }

  final value = this!;
  final safeStart = start.clamp(0, value.length).toInt();
  final safeEnd =
      (end ?? value.length).clamp(safeStart, value.length).toInt();
  final masked = List.filled(safeEnd - safeStart, mask).join();

  return '${value.substring(0, safeStart)}$masked${value.substring(safeEnd)}';
}