From c7c85af6b41818a39947e1796476ec1919e030a3 Mon Sep 17 00:00:00 2001 From: Tommy Chow Date: Sun, 23 Mar 2025 21:53:47 -0700 Subject: [PATCH] improve link regex --- lib/constants.dart | 5 +++++ lib/models/irc.dart | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/constants.dart b/lib/constants.dart index 68c67376..8537b022 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -19,6 +19,11 @@ const zeroWidthEmotes = [ /// Regex for matching strings that contain lower or upper case English characters. final regexEnglish = RegExp(r'[a-zA-Z]'); +final regexLink = RegExp( + r'(?:https?:\/\/)?(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)', + caseSensitive: false, // Make it case-insensitive +); + /// The default badge width and height. const defaultBadgeSize = 18.0; diff --git a/lib/models/irc.dart b/lib/models/irc.dart index 39793868..35f12b9a 100644 --- a/lib/models/irc.dart +++ b/lib/models/irc.dart @@ -694,7 +694,7 @@ class IRCMessage { } }, ); - } else if (RegExp(r'https?:\/\/').hasMatch(text)) { + } else if (regexLink.hasMatch(text)) { return TextSpan( text: text, style: style?.copyWith(