如何验证NRIC的文本框

时间:2011-06-30 09:03:37

标签: c# winforms visual-studio-2010

我正在用c#和窗口形式做一个项目,现在处于测试模式,但我遇到了问题

  1. 我有一个文本框,基本上是为了让人们键入他们的nric,但我不知道如何编写代码来验证文本框中的nric

  2. 我从未说过的另一件事是我有学生证号码,如何在文本框中验证长度?

  3. 有谁知道??? NRIC就像是例如S1234567H ...所以基本上是前面必须是一个S字符,中间是一个7位数字,最后一个是任何alpabet

    提前致谢

    我唯一知道的是将代码放在这里:

     private void nricTextbox_Validating(object sender, CancelEventArgs e)
     {
     }
    

3 个答案:

答案 0 :(得分:0)

您可以使用正则表达式验证文本框中的输入文本。 Regex class

例如,你需要允许在文本框中只输入10个数字 看一下代码

            string strRegex = @"^(\d{10})$";
        Regex myRegex = new Regex(strRegex);
        string strTargetString = textBox.Text;

        if(myRegex.IsMatch(strTargetString))
        {
            //all is ok
        }
        else
        {
            //incorrect input
        }

如果您想要简单的检查输入文本长度,请使用此代码

if(textBox.Text.Length > 10)
{
    //incorrect length
}

insteed 10把你的价值

答案 1 :(得分:0)

使用此正则表达式验证输入

string strRegex = @"^(S\d{7}[a-zA-Z])$";

答案 2 :(得分:0)

好的我已经创建了一个简单的Windows窗体应用程序放在TextBox组件上 使用名称textBox1和按钮控件在按钮单击事件处理程序中使用名称ValidateButton我已编写此代码

using System;
using System.Windows.Forms;

namespace ValidateSimple
{
  using System.Text.RegularExpressions;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void ValidateButton_Click(object sender, EventArgs e)
    {
        string strRegex = @"^(S\d{7}[a-zA-Z])$";

        Regex myRegex = new Regex(strRegex);

        string strTargetString = textBox1.Text;
        if (myRegex.IsMatch(strTargetString))
        {
            MessageBox.Show(@"The NRIC is correct!");
        }
        else
        {
            MessageBox.Show(@"The NRIC is incorrect!");

        }

    }
  }
}

运行应用程序并将文本框放入您的NRIC并按下按钮 如果输入正确将显示相应的消息,否则不正确的NRIC消息

您也可以使用MaskedTextBox控件来查看msdn

并在属性Mask中放入此S0000000L S - 是你的开始信 0-表示任何数字 L - 表示字母需要a-z和A-Z 如果您将使用MaskedTextBox控件,则用户无法输入错误的值

查看模式信息msdn