我正在尝试查看字符串是否包含特定格式。例如,如果有人键入电话号码1234567890,我需要强制某人以特定格式输入电话号码。 (###)### - ####。我正在对一个已售出的程序进行更改,其中程序的设计非常糟糕,您无法在表单中强制格式化。所以,我想知道是否有办法使用string.contains(“(###)### - ####”)或任何其他帮助将不胜感激。
答案 0 :(得分:6)
听起来你想要使用正则表达式(又名正则表达式)当尝试根据模式获取或检查字符串时,正则表达式通常是最佳路径。
here is MSDN docs和here is a decent how-to on codeproject
quick google将向您显示大量的示例,教程和表达式库
答案 1 :(得分:1)
您可以使用MaskedTextBox
答案 2 :(得分:0)
听起来你需要使用正则表达式吗?
答案 3 :(得分:0)
有很多选项,但最安全的是使用Regex类并将字符串与所需的表达式匹配(参见一些示例here)
答案 4 :(得分:0)
为什么不创建一个方法来控制字段上的格式,例如,如果它们离开字段并输入12345671454将其传递给此方法并返回格式化字符串
public static string FormatNumberPhone(string inputString)
{
string tempString;
tempString = string.Format("{0:(###)###-####}", Convert.ToInt32(inputString));
return tempString;
}
答案 5 :(得分:0)
这听起来像是regular expressions的工作。基本上你必须提出一个正则表达式,然后使用例如用于检查用户输入是否匹配的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;
}
出于学习目的,我建议您使用Expresso或google等软件作为正则表达式电话号码。我在样本中使用的表达式附带Expresso(免费工具)。