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