diff --git a/lib/src/url.dart b/lib/src/url.dart index e2f71f5..270e928 100644 --- a/lib/src/url.dart +++ b/lib/src/url.dart @@ -1,7 +1,7 @@ import 'package:linkify/linkify.dart'; final _urlRegex = RegExp( - r'^((?:.|\n)*?)((?:https?):\/\/[^\s/$.?#].[^\s]*)', + r'^((?:.|\n)*?)((?:https?:\/\/|www\.)[^\s/$.?#].[^\s]*)', caseSensitive: false, ); @@ -10,6 +10,11 @@ final _looseUrlRegex = RegExp( caseSensitive: false, ); +final _protocolIdentifierRegex = RegExp( + r'^(https?:\/\/)', + caseSensitive: false +); + class UrlLinkifier extends Linkifier { const UrlLinkifier(); @@ -48,7 +53,7 @@ class UrlLinkifier extends Linkifier { var url = originalUrl; - if (loose) { + if (loose || !originalUrl.startsWith(_protocolIdentifierRegex)) { originalUrl = (options.defaultToHttps ?? false ? "https://" : "http://") + originalUrl;