【问题标题】:How to ensure that winform text box input starts with a specific number?如何确保winform文本框输入以特定数字开头?
【发布时间】:2018-12-17 04:24:10
【问题描述】:

我想确保用户文本框输入以 71 或 72 开头并包含 10 位数字。否则给出错误信息。我该怎么做?

我正在使用 Visual Studio 2015。

【问题讨论】:

  • 发布你到目前为止所尝试的内容。
  • 这个question/answer会给你一个起点

标签: c# visual-studio winforms input textbox


【解决方案1】:

好吧,你并没有真正告诉我们你尝试了什么或给我们任何限制,所以我将给出一个非常笼统的答案:

public class Program
    {
        public static void Main(string[] args)
        {
            string myInput = "";
            textBox1.Text.Trim();
            if(textBox1.Text.Length() == 10)
            {
                if(textBox1.Text[0] == '7')
                {
                    if(textBox1.Text[1] == '1' || textBox1.Text[1] == '2')
                    {
                        myInput == textBox1.Text();
                        int num = Int32.Parse(myInput);
                        //num is now an int that is 10 digits and starts with "71" or "72"
                    }
                }
            }
            else
            {
               MessageBox.Show("Invalid input", "Invalid Input");
            }          
        }
    }

此外,您可以将所有 if 语句组合成一个大语句。这将允许它更好地与 else 语句交互。

【讨论】:

    【解决方案2】:

    正则表达式怎么样:

    (71|72)\d{8}
    

    基本上,它以 71 或 72 开头,然后是 8 个数字。

    如果匹配,此代码将返回一个布尔值

    System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "(71|72)\d{8}")
    

    参考:

    https://msdn.microsoft.com/en-us/library/sdx2bds0(v=vs.110).aspx
    

    【讨论】:

      【解决方案3】:
       if ((TextBox.Text().StartsWith("71") || TextBox.Text().StarsWith("72")) && (TextBox.Text().Length == 10))
       {
      
       }
       else
       {
      
      
       }
      

      【讨论】:

      • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
      • 不需要澄清,这正是他要求的。
      • 1.他要了10个数字。 2. 在人类可读文本中添加条件为真或假的注释。
      【解决方案4】:

      如果您有大量的文本框,那么下面的代码将适合您。

              var boxes = new List<TextBox>
          {
               textBox1,
               textBox2,
               textBox3
          };
      
          if ((!boxes.Any(x => x.Text.StartsWith("71")) || !boxes.Any(x => x.Text.StartsWith("72"))) && !boxes.Any(x => x.Text.StartsWith("100")))
          {
              // Code
          }
          else
          {
              // Error
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-23
        • 1970-01-01
        • 2014-07-02
        • 2017-01-27
        • 2019-07-17
        • 2012-12-04
        • 2018-01-03
        • 1970-01-01
        相关资源
        最近更新 更多