mask method
Masks the middle of a string, revealing visibleStart characters from the
start and visibleEnd characters from the end.
Example:
'9876543210'.mask(visibleStart: 2, visibleEnd: 4); // 98******3210
'9876543210'.mask(visibleStart: 0, visibleEnd: 4); // ********3210
Implementation
String mask({
int visibleStart = 2,
int visibleEnd = 2,
String maskChar = '*',
bool maskIfShorter = false,
}) {
if (_isEmptyOrNull) return '';
final value = this!.trim();
final length = value.length;
if (length <= visibleStart + visibleEnd) {
return maskIfShorter ? _repeatMask(maskChar, length) : value;
}
final start = value.substring(0, visibleStart);
final end = visibleEnd > 0 ? value.substring(length - visibleEnd) : '';
final hiddenCount = length - visibleStart - visibleEnd;
return '$start${_repeatMask(maskChar, hiddenCount)}$end';
}