initialsFromName function

String initialsFromName(
  1. String name
)

Returns the uppercase initials for name.

Uses the first letter of the first and last whitespace-separated parts; a single-word name yields one initial. Returns an empty string when name has no usable parts.

Example:

initialsFromName('Ada Lovelace'); // 'AL'
initialsFromName('Plato'); // 'P'

Implementation

String initialsFromName(String name) {
  final List<String> parts = name
      .trim()
      .split(RegExp(r'\s+'))
      .where((String s) => s.isNotEmpty)
      .toList();
  if (parts.isEmpty) return '';
  if (parts.length == 1) return parts.first.substringSafe(0, 1).toUpperCase();
  final first = parts.firstOrNull;
  final last = parts.lastOrNull;
  if (first == null || last == null) return '';
  return '${first.substringSafe(0, 1)}${last.substringSafe(0, 1)}'.toUpperCase();
}