【问题标题】:Acceptable phone numbers on .net.net 上可接受的电话号码
【发布时间】:2016-01-10 20:26:57
【问题描述】:

我是 .net 编程的新手。我有一个产品供应商数据库,并且有一些关于供应商的详细信息。在 phonetextbox 上,我希望电话号码至少为 8 位。我对此进行了编码,但不起作用。你能帮帮我吗?

   'Dim numbers As Decimal = Convert.ToDecimal(PhoneTextBox.Text)
    Dim regex As Regex = New Regex("^\d{8}")
    Dim match As Match = regex.Match(numbers)
    If Not match.Success() Then
        MessageBox.Show("Attention!!!The phone number must be at least 8 digits")
        e.Cancel = True
    End If

End Sub`

【问题讨论】:

  • 电话号码不是小数,如果要格式化保存,它甚至不是数字类型。不需要正则表达式来测试长度:PhoneTextBox.Text.Length
  • 请阅读How to Ask 并说明这究竟是如何“不起作用”的。
  • 另外,不需要用很多感叹号来提醒用户!!!这只是一个错字!!!!状态栏消息或ErrorProvider 不会像必须关闭的 MessageBox 那样烦人。

标签: .net vb.net visual-studio


【解决方案1】:

这应该几乎可以完成您想要做的事情。正如 cmets 中所说,长度检查不需要正则表达式,它绝对应该是字符串而不是数字类型。

    Dim submission = "1234567"
    If (submission.Length <= 8 ) Then
        Console.WriteLine("Attention!!!The phone number must be at least 8 digits")
    'e.Cancel = True
    End If

【讨论】:

    【解决方案2】:
        Sub Main()
            Dim phonePattern As New Regex("^\d{3}-\d{7}$")
            Dim phoneNumber As String = "210-1234567"
    
            If (Not phonePattern.IsMatch(phoneNumber)) Then
                Console.WriteLine("Number {0} is not in right format [999-9999999]", phoneNumber)
            Else
                Console.WriteLine("Number {0} is in right format [999-9999999]", phoneNumber)
            End If
    
    
            Console.ReadLine()
        End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      相关资源
      最近更新 更多