diff --git a/CommunityToolkit.Common/Extensions/StringExtensions.cs b/CommunityToolkit.Common/Extensions/StringExtensions.cs
index 2e8932218..a94135a04 100644
--- a/CommunityToolkit.Common/Extensions/StringExtensions.cs
+++ b/CommunityToolkit.Common/Extensions/StringExtensions.cs
@@ -68,6 +68,17 @@ public static bool IsDecimal([NotNullWhen(true)] this string? str)
         return decimal.TryParse(str, NumberStyles.Number, CultureInfo.InvariantCulture, out _);
     }
 
+    /// 
+    /// Determines whether a string is valid as a currency.
+    /// 
+    /// The string to test.
+    /// The culture to check against. If left null,  is used.
+    /// true for a valid currency; otherwise, false.
+    public static bool IsCurrency([NotNullWhen(true)] this string? str, CultureInfo? culture = null)
+    {
+        return decimal.TryParse(str, NumberStyles.Currency, culture ?? CultureInfo.CurrentCulture, out _);
+    }
+
     /// 
     /// Determines whether a string is a valid integer.
     ///