mask static method

String mask(
  1. String string,
  2. String character,
  3. int index, [
  4. int? length,
])

Masks a portion of string with character, starting at index for length.

Str.mask('user@example.com', '*', 3);    // 'use*************'
Str.mask('user@example.com', '*', 3, 5); // 'use*****mple.com'

Implementation

static String mask(
  String string,
  String character,
  int index, [
  int? length,
]) {
  if (character.isEmpty) return string;
  final start = index < 0 ? string.length + index : index;
  if (start >= string.length) return string;
  final end = length == null
      ? string.length
      : (start + length.abs()).clamp(start, string.length);
  final maskLen = end - start;
  return string.substring(0, start) +
      character[0] * maskLen +
      string.substring(end);
}