C# 如何检查字符串是否包含特定格式

C# 如何检查字符串是否包含特定格式,c#,regex,C#,Regex,我正在尝试查看字符串是否包含特定格式。例如,如果某人键入电话号码1234567890,我需要强制某人以特定格式输入电话号码。 (###) ###-####. 我正在对一个出售的程序进行更改,该程序的设计非常糟糕,无法在表单中强制格式化。所以,我想知道是否有一种方法可以使用string.contains((#########-####)或任何其他帮助,我们将不胜感激 听起来像是要使用正则表达式(又称正则表达式)。在尝试获取或检查字符串模式时,正则表达式通常是最好的选择 及 a将向您展示大量的示例、

我正在尝试查看字符串是否包含特定格式。例如,如果某人键入电话号码1234567890,我需要强制某人以特定格式输入电话号码。
(###) ###-####. 我正在对一个出售的程序进行更改,该程序的设计非常糟糕,无法在表单中强制格式化。所以,我想知道是否有一种方法可以使用string.contains((#########-####)或任何其他帮助,我们将不胜感激

听起来像是要使用正则表达式(又称正则表达式)。在尝试获取或检查字符串模式时,正则表达式通常是最好的选择


a将向您展示大量的示例、教程和表达式库

您可以使用a

听起来您需要使用正则表达式


有很多选项,但最安全的方法是使用Regex类并将字符串与所需的表达式匹配(参见一些示例)

为什么不创建一个方法,在其中可以控制字段的格式,例如,如果他们离开字段并键入12345671454,则将其传递到此方法并返回格式化的字符串

   public static string FormatNumberPhone(string inputString)
   {
       string tempString;
       tempString = string.Format("{0:(###)###-####}", Convert.ToInt32(inputString));
       return tempString;
   }

这听起来像是一份工作。基本上,您必须提出一个regexp,然后使用例如IsMatch方法来检查用户输入是否匹配。如果没有,则说明电话号码格式错误

这是一个样本

        // Matches (123) 123-1234 or (123) 123 1234
        var pattern = @"\((?<AreaCode>\d{3})\)\s*(?<Number>\d{3}(?:-|\s*)\d{4})";
        var regexp = new System.Text.RegularExpressions.Regex(pattern);
        var userInput = "(123) 555-1243";
        if (!regexp.IsMatch(userInput))
        {
            // Does not match. User input is in incorrect format
            return;
        }
//匹配(123)123-1234或(123)123-1234

var pattern=@“\(?或google表示正则表达式电话号码。我在示例中使用的表达式与Expresso(免费工具)一起提供.

这是winforms、webforms、WPF还是???使用常规表达式。+1-如果这是ASP.NET istead的webforms,Ajax控件工具包上有一个simnilar控件,我确信还有其他控件…是的,这实际上是有意义的:)。谢谢