【问题标题】:How to check if a string contains only numbers?如何检查字符串是否只包含数字?
【发布时间】:2011-05-26 13:01:36
【问题描述】:
Dim number As String = "07747(a)"

If number.... Then

endif

我希望能够检查字符串内部是否只有数字,如果它只包含数字然后运行 ​​if 语句中的任何内容?我用什么检查来检查字符串是否只包含数字而没有字母 ot () 等..?

我要检查的是手机号码,所以应该接受 077 234 211,但不应该接受其他字母

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    你可以使用这样的正则表达式

    If Regex.IsMatch(number, "^[0-9 ]+$") Then
    
    ...
    
    End If
    

    【讨论】:

    • 这可能是最简单的答案,它涵盖了所有基础。 +1 给你。
    • 另外,根据更新后的要求,定期 epressions 可能是最简单的方法。太糟糕了,我只能投票给你一次。
    • @Bala R,我不是想成为一个混蛋,只是好奇你为什么使用构造函数版本而不是静态 Regex.IsMatch(input,pattern) 方法?后者似乎更清晰。
    • 谢谢@Bala R,我只是好奇。当然,你原来的方法也行得通,一开始只是把我扔了。
    • 在我的例子中,我正在从一个文本文件中读取,并且我正在检索的值可以是一个字符串或一个 2 位整数(但无论哪种方式都将作为字符串检索)。所以,这个解决方案非常有效。谢谢!
    【解决方案2】:

    使用IsNumeric Function:

    IsNumeric(number)
    

    如果要验证电话号码,应使用正则表达式,例如:

    ^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{3})$
    

    【讨论】:

    • IsNumeric 对于十进制数也返回 true,这可能不是 OP 想要的。
    • 这是否包括空格?基本上数字可能是 0777 123456 应该被接受
    • @Beginner,您的帖子只说数字,如果您需要,您应该将其更改为数字和空格。我们在这里非常直白。
    • IsNumeric 在“1+”上返回 True。加号显然不是“数字”(按照 OP 的要求)。所以 IsNumeric 正在“评估”一个“表达式”。 True 的结果仅表示表达式评估为数字。我不认为这是这里需要的。
    【解决方案3】:

    http://msdn.microsoft.com/en-us/library/f02979c7(v=VS.90).aspx

    如果你不需要像这样返回的整数,你可以不传递任何东西

    if integer.TryParse(number,nothing) then
    

    【讨论】:

    • @Beginner 我不确定您是否可以使用 number.Replace(" ", "") 去除空格
    • @Okuma.Scott: Trim 不会删除数字之间的空格。
    【解决方案4】:

    您可以删除所有空格并利用 LINQ All:

    判断一个序列的所有元素是否满足一个条件。

    如下图使用:

    Dim number As String = "077 234 211"
    If number.Replace(" ", "").All(AddressOf Char.IsDigit) Then
        Console.WriteLine("The string is all numeric (spaces ignored)!")
    Else
        Console.WriteLine("The string contains a char that is not numeric and space!")
    End If
    

    要仅检查字符串是否仅包含数字,请使用:

    If number.All(AddressOf Char.IsDigit) Then
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-04
      • 2011-07-11
      • 2012-08-20
      • 2010-12-27
      • 1970-01-01
      • 2019-12-29
      • 2016-05-09
      • 2017-09-23
      相关资源
      最近更新 更多