parseEmojis function

String parseEmojis(
  1. String val
)

Parses Strings containing emoiji(s) in a text syntax like :taco: to 🌮

Implementation

String parseEmojis(String val) {
  String value = val;
  try {
    value = value.replaceAllMapped(RegExp(r'(?=:)([^\s])(.*?)([^\s])(:)'),
        (Match m) {
      String? m2;
      if ((m[0]?.startsWith(':') ?? false) &&
          (m[0]?.endsWith(':') ?? false) &&
          !(m[0]?.contains(' ') ?? false)) {
        m2 = (m[0]!.substring(1, m[0]!.length - 1));
      }
      if (!isNullOrEmpty(m2) &&
          !(m2?.contains(':') ?? false) &&
          !(m2?.contains(' ') ?? false) &&
          Emoji.emoji[m2?.toLowerCase()] != null) {
        return Emoji.emoji[m2?.toLowerCase()]!;
      }
      return m[0] ?? m.toString();
    });
  } catch (e) {
    return val;
  }
  return value;
}