c#代码检查字符串是否只包含数字

时间:2013-02-01 14:05:13

标签: c# asp.net

我是C#noob,我有这个任务。 我有TextBox,用户需要输入13位数字。 我需要检查用户是否正确填充了TextBox。只有数字才可以接受。

之后,我需要检查最后输入的(第13个)数字是否等于我从其他函数获得的int64变量。

谢谢!

3 个答案:

答案 0 :(得分:1)

我不会告诉你在哪里放置这些代码,只是为您的条件编写代码。请尝试做一些事情,然后问一个你坚持的问题。

int j = SomeFunction();
int i = 0;
bool bIisJ = false;
if (int.TryParse("Your String", out i))
  if(i.ToString().Length == 13)
    bIisJ = i.ToString()[12] == j.ToString();

答案 1 :(得分:0)

假设TextBox控件的名称是Textbox1:

    Textbox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(Textbox1_KeyPress);
    Textbox1.MaxLength = 13;
    Textbox1.Validating += new CancelEventHandler(Textbox1_Validating);

    private void Textbox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            e.Handled = true;
    }

    void Textbox1_Validating(object sender, CancelEventArgs e)
    {
        if(Textbox1.Text.Trim().Length != 13)
        {
            e.Cancel = true;
        }
        else if(Convert.ToInt64(Textbox1.Text.Trim()[12] ) != 0) {
            e.Cancel = true;
        }
        else e.Cancel = false;
    }

答案 2 :(得分:0)

public static Boolean isNumber(String test) {
        char[] chars = test.ToCharArray();
        foreach(char c in chars) {
            int charCode = (int)c;
            if(charCode < 48 || charCode > 57)
                return false;
        }
        return true;
    }

更友善的方式?