C# 用C语言将字符串格式化为电话号码#

C# 用C语言将字符串格式化为电话号码#,c#,C#,我在C#中有一个字符串值1233873600,我必须在C中将其转换为123-387-7300# 是否有任何内置函数可以在c#?中将字符串转换为长字符串,并使用格式“{0:########}”” 您可能需要使用正则表达式来完成此操作。北美电话号码的正则表达式如下所示 ^(\(?[0-9]{3}\)?)?\-?[0-9]{3}\-?[0-9]{4}$ 我想你可以使用Regex.Replace方法在C#中。我认为Regex是最好的选择 这个站点非常适合查找预制的正则表达式字符串 您可以使用一个简单的

我在C#中有一个字符串值1233873600,我必须在C中将其转换为123-387-7300#


是否有任何内置函数可以在c#?

中将字符串转换为长字符串,并使用格式
“{0:########}”


您可能需要使用正则表达式来完成此操作。北美电话号码的正则表达式如下所示

^(\(?[0-9]{3}\)?)?\-?[0-9]{3}\-?[0-9]{4}$

我想你可以使用
Regex.Replace
方法在C#中。

我认为Regex是最好的选择

这个站点非常适合查找预制的正则表达式字符串


您可以使用一个简单的助手方法,该方法将获取字符串,对输入进行消毒以删除空格或用作分隔符的不需要的特殊字符,然后使用内置的ToString方法。如果你检查了不同的长度,你也可以确保格式是你认为合适的。例如:

public string FormatPhoneNumber(string phoneNumber)
    {
        string originalValue = phoneNumber;

        phoneNumber= new System.Text.RegularExpressions.Regex(@"\D")
            .Replace(phoneNumber, string.Empty);

        value = value.TrimStart('1');

        if (phoneNumber.Length == 7)

            return Convert.ToInt64(value).ToString("###-####");
        if (phoneNumber.Length == 9)

            return Convert.ToInt64(originalValue).ToString("###-###-####");
        if (phoneNumber.Length == 10)

            return Convert.ToInt64(value).ToString("###-###-####");

        if (phoneNumber.Length > 10)
            return Convert.ToInt64(phoneNumber)
                .ToString("###-###-#### " + new String('#', (phoneNumber.Length - 10)));

        return phoneNumber;
    }

字符串格式对我不起作用,所以我做了:

string nums = String.Join("", numbers);
return nums.Insert(0, "(").Insert(4, ")").Insert(5, " ").Insert(9, "-");

不,没有,但您可以轻松编写自己的。使用格式字符串的可能副本将是执行此操作的首选方法。可读性更强,计算速度更快。
public string FormatPhoneNumber(string phoneNumber)
    {
        string originalValue = phoneNumber;

        phoneNumber= new System.Text.RegularExpressions.Regex(@"\D")
            .Replace(phoneNumber, string.Empty);

        value = value.TrimStart('1');

        if (phoneNumber.Length == 7)

            return Convert.ToInt64(value).ToString("###-####");
        if (phoneNumber.Length == 9)

            return Convert.ToInt64(originalValue).ToString("###-###-####");
        if (phoneNumber.Length == 10)

            return Convert.ToInt64(value).ToString("###-###-####");

        if (phoneNumber.Length > 10)
            return Convert.ToInt64(phoneNumber)
                .ToString("###-###-#### " + new String('#', (phoneNumber.Length - 10)));

        return phoneNumber;
    }
string nums = String.Join("", numbers);
return nums.Insert(0, "(").Insert(4, ")").Insert(5, " ").Insert(9, "-");