From e3241d737076afc17b1e5fa4d1340b13783ab32d Mon Sep 17 00:00:00 2001 From: yv01p Date: Sun, 7 Dec 2025 22:21:44 +0000 Subject: [PATCH] perf: cache regex in StripHtml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../Extensions/StringExtensions.Sanitization.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Core/Extensions/StringExtensions.Sanitization.cs b/src/Umbraco.Core/Extensions/StringExtensions.Sanitization.cs index 7760258c2c..e924495388 100644 --- a/src/Umbraco.Core/Extensions/StringExtensions.Sanitization.cs +++ b/src/Umbraco.Core/Extensions/StringExtensions.Sanitization.cs @@ -25,6 +25,9 @@ public static partial class StringExtensions private static readonly Lazy FileExtensionRegex = new(() => new Regex(@"(?\.[^\.\?]+)(\?.*|$)", RegexOptions.Compiled)); + private static readonly Lazy HtmlTagRegex = new(() => + new Regex(@"<(.|\n)*?>", RegexOptions.Compiled)); + /// /// Cleans string to aid in preventing xss attacks. /// @@ -45,11 +48,7 @@ public static partial class StringExtensions /// /// The text. /// Returns the string without any HTML tags. - public static string StripHtml(this string text) - { - const string pattern = @"<(.|\n)*?>"; - return Regex.Replace(text, pattern, string.Empty, RegexOptions.Compiled); - } + public static string StripHtml(this string text) => HtmlTagRegex.Value.Replace(text, string.Empty); /// /// An extension method that returns a new string in which all occurrences of an