From 52b3170e10d8ba518cd8675659857bae65f59334 Mon Sep 17 00:00:00 2001 From: nsnail Date: Wed, 4 Jan 2023 18:12:44 +0800 Subject: [PATCH] bugfix --- src/Constant/Regexes.cs | 13 +++++++++++++ .../JsonSerializerOptionsExtensions.cs | 14 ++++++-------- src/Extensions/StringExtensions.cs | 18 +++++------------- src/NSExt.csproj | 6 +++--- 4 files changed, 27 insertions(+), 24 deletions(-) create mode 100644 src/Constant/Regexes.cs diff --git a/src/Constant/Regexes.cs b/src/Constant/Regexes.cs new file mode 100644 index 0000000..5981ac8 --- /dev/null +++ b/src/Constant/Regexes.cs @@ -0,0 +1,13 @@ +namespace NSExt.Constant; +#pragma warning disable SYSLIB1045 + +// 使用 RegexGenerator 新特性会生成重复key值的xmlcomment导致出错 +internal static class Regexes +{ + public static readonly Regex RegexHtmlTag = new("<[^>]*>", RegexOptions.Compiled | RegexOptions.IgnoreCase); + + public static readonly Regex RegexMobile + = new("^(\\d{3})\\d{4}(\\d{4})$", RegexOptions.Compiled | RegexOptions.IgnoreCase); + + public static readonly Regex RegexUpLetter = new("([A-Z])", RegexOptions.Compiled | RegexOptions.IgnoreCase); +} \ No newline at end of file diff --git a/src/Extensions/JsonSerializerOptionsExtensions.cs b/src/Extensions/JsonSerializerOptionsExtensions.cs index 162c51e..d17bf51 100644 --- a/src/Extensions/JsonSerializerOptionsExtensions.cs +++ b/src/Extensions/JsonSerializerOptionsExtensions.cs @@ -15,14 +15,12 @@ public static class JsonSerializerOptionsExtensions public static JsonSerializerOptions NewJsonSerializerOptions(this JsonSerializerOptions _) { return new JsonSerializerOptions { - ReadCommentHandling = JsonCommentHandling.Skip - , AllowTrailingCommas = true - , DictionaryKeyPolicy = JsonNamingPolicy.CamelCase - , PropertyNamingPolicy = JsonNamingPolicy.CamelCase - , Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping - , NumberHandling - = JsonNumberHandling.AllowReadingFromString | - JsonNumberHandling.WriteAsString + ReadCommentHandling = JsonCommentHandling.Skip + , AllowTrailingCommas = true + , DictionaryKeyPolicy = JsonNamingPolicy.CamelCase + , PropertyNamingPolicy = JsonNamingPolicy.CamelCase + , Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping + , NumberHandling = JsonNumberHandling.AllowReadingFromString , PropertyNameCaseInsensitive = true }; } diff --git a/src/Extensions/StringExtensions.cs b/src/Extensions/StringExtensions.cs index d4a6741..9c6d758 100644 --- a/src/Extensions/StringExtensions.cs +++ b/src/Extensions/StringExtensions.cs @@ -4,13 +4,14 @@ #pragma warning disable CA1720 using System.Security.Cryptography; using System.Text.Json; +using NSExt.Constant; namespace NSExt.Extensions; /// /// StringExtensions /// -public static partial class StringExtensions +public static class StringExtensions { private static readonly JsonSerializerOptions _defaultJsonSerializerOptions = default(JsonSerializerOptions).NewJsonSerializerOptions(); @@ -369,7 +370,7 @@ public static partial class StringExtensions /// 掩码后的手机号 public static string MaskMobile(this string me) { - return MyRegex().Replace(me, "$1****$2"); + return Regexes.RegexMobile.Replace(me, "$1****$2"); } /// @@ -444,7 +445,7 @@ public static partial class StringExtensions /// 处理之后的字符串 public static string RemoveHtmlTag(this string me) { - return MyRegex1().Replace(me, string.Empty); + return Regexes.RegexHtmlTag.Replace(me, string.Empty); } /// @@ -473,7 +474,7 @@ public static partial class StringExtensions /// public static string Snakecase(this string me) { - return MyRegex2().Replace(me, "-$1").ToLower(CultureInfo.InvariantCulture).TrimStart('-'); + return Regexes.RegexUpLetter.Replace(me, "-$1").ToLower(CultureInfo.InvariantCulture).TrimStart('-'); } /// @@ -541,13 +542,4 @@ public static partial class StringExtensions .Replace("-", string.Empty) .ToLower(CultureInfo.CurrentCulture); } - - [GeneratedRegex("^(\\d{3})\\d{4}(\\d{4})$")] - private static partial Regex MyRegex(); - - [GeneratedRegex("<[^>]*>")] - private static partial Regex MyRegex1(); - - [GeneratedRegex("([A-Z])")] - private static partial Regex MyRegex2(); } \ No newline at end of file diff --git a/src/NSExt.csproj b/src/NSExt.csproj index 1196f66..f861365 100644 --- a/src/NSExt.csproj +++ b/src/NSExt.csproj @@ -1,17 +1,17 @@ - net7.0 + net7.0 true - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + \ No newline at end of file