mask method

String mask({
  1. int revealStart = 0,
  2. int revealEnd = 0,
  3. String maskChar = '*',
})

Masks a portion of the string with maskChar, revealing only the edges.

Useful for hiding sensitive data like credit card numbers, phone numbers, or passwords while showing just enough to identify the original.

Example:

'1234567890'.mask(revealStart: 2, revealEnd: 2)  // '12****890'
'password123'.mask(revealStart: 1, revealEnd: 1) // 'p*********3'
'1234567890'.mask()                              // '**********' (all masked)

Implementation

String mask({int revealStart = 0, int revealEnd = 0, String maskChar = '*'}) {
  final int start = revealStart >= 0 ? revealStart : 0;
  final int end = revealEnd >= 0 ? revealEnd : 0;

  if (start + end >= length) {
    return this;
  }

  return '${substring(0, start)}${maskChar * (length - start - end)}${substring(length - end)}';
}