shoc-backend/SeaHaven.Services/Helpers/VendorPhoneNormalizer.cs

26 lines
754 B
C#
Raw Normal View History

using System.Text.RegularExpressions;
namespace SeaHaven.Services.Helpers
{
public static class VendorPhoneNormalizer
{
public static readonly Regex NorthAmericanPhoneRegex = new(
@"^\(\d{3}\) \d{3}-\d{4}$",
RegexOptions.Compiled);
public static string? NormalizeToCanonical(string? value)
{
if (string.IsNullOrWhiteSpace(value))
return null;
var digits = new string(value.Where(char.IsDigit).ToArray());
if (digits.Length == 11 && digits.StartsWith('1'))
digits = digits[1..];
return digits.Length == 10
? $"({digits[..3]}) {digits[3..6]}-{digits[6..]}"
: value;
}
}
}