tt_MASK function

dynamic tt_MASK(
  1. dynamic v1,
  2. dynamic v2,
  3. dynamic v3
)

tt_MASK(str, mask, pad): mask formatting (# is the digit placeholder)

Implementation

dynamic tt_MASK(dynamic v1, dynamic v2, dynamic v3) {
  final src = varToStr(v1).replaceAll(RegExp(r"\D"), "");
  final mask = varToStr(v2);
  var si = 0;
  final buf = StringBuffer();
  for (final c in mask.split("")) {
    if (c == '#') {
      if (si < src.length) {
        buf.write(src[si++]);
      } else {
        buf.write(varToStr(v3).isNotEmpty ? varToStr(v3)[0] : "_");
      }
    } else {
      buf.write(c);
    }
  }
  return buf.toString();
}