formatStrict method

String formatStrict(
  1. String number, {
  2. String pattern = 'x-xxxx-xxxxx-xx-x',
  3. String delimiter = '-',
})

Strict formatter that validates input length against the pattern. Throws ArgumentError if number length does not match pattern slots.

Implementation

String formatStrict(String number,
    {String pattern = 'x-xxxx-xxxxx-xx-x', String delimiter = '-'}) {
  final slots = pattern.split('').where((c) => c != delimiter).length;
  if (number.length != slots || !RegExp(r'^\d+$').hasMatch(number)) {
    throw ArgumentError('number must be $slots digits for the given pattern');
  }
  return format(number, pattern: pattern, delimiter: delimiter);
}