我正在使用C#在Visual Studio中创建一个windows应用程序。
我想创建一个文本框,用户将在其中键入他们的邮政编码。该程序需要能够确认已输入有效条目。
我是编程新手,曾尝试过在谷歌上搜索,但更困惑了。
这是我们以前用来验证英国邮政编码的方法。。。(注意:我们现在实际使用第三方API进行验证)
private bool IsPostCode(string text)
{
var nospace = text.Replace(" ", string.Empty);
if (nospace.Length < 6)
{
return false;
}
char[] chars = text.ToCharArray();
if (chars[0] < 'A' || chars[0] > 'Z')
{
return false;
}
if (chars[1] < 'A' || chars[1] > 'Z')
{
return false;
}
if (chars[2] < '0' || chars[2] > '9')
{
return false;
}
return true;
}
您可以为此使用MaskedTextBox
。只需在控件的Mask
属性中定义邮政编码模式。
请注意,它本身只会检查输入是否与预期格式匹配。如果你需要检查代码是否与地址的其他部分一致(例如,50000开头的邮政编码在明尼苏达州无效),你很可能需要使用在线服务API。
编辑:
这里有点超出范围,但仍然是一个有效的观点:正如Benjamin所提到的,您需要在模型级别进行验证。将MaskedTextBox
控件视为一种简单的方法,它可以帮助最终用户在提交到模型对象时,在实际得到验证之前输入格式良好的ZIP代码。