sanitizeSignerName static method

String? sanitizeSignerName(
  1. String? raw
)

Remove sufixos de CPF/CNPJ que alguns emissores anexam ao nome.

Implementation

static String? sanitizeSignerName(String? raw) {
  if (raw == null) return null;
  var value = raw.trim();
  if (value.isEmpty) return null;

  final tailWithSep =
      RegExp(r'^(.+?)\s*[:\-]\s*([\d.\-/]+)$').firstMatch(value);
  if (tailWithSep != null) {
    final digits = tailWithSep.group(2)!.replaceAll(RegExp(r'\D'), '');
    if (digits.length == 11 || digits.length == 14) {
      value = tailWithSep.group(1)!.trim();
    }
  }

  final tailToken = RegExp(r'^(.+?)\s+([\d.\-/]{11,20})$').firstMatch(value);
  if (tailToken != null) {
    final digits = tailToken.group(2)!.replaceAll(RegExp(r'\D'), '');
    if (digits.length == 11 || digits.length == 14) {
      value = tailToken.group(1)!.trim();
    }
  }

  return value.isEmpty ? null : value;
}