1

我在我的 WPF (C#, VS 08) 应用程序中存储了不同长度的电话号码。

我将它们存储为字符串。我的问题是关于我的方法AddNewPhoneNo(string phoneNo)

在这个方法中,我Int.TryParse用来验证传入的数字(即不为空,是数字...)。从那以后,我意识到这可能不是最好的方法,因为那时我被限制在±2147483647的数字范围内。显然,电话号码并非总是如此。

验证电话号码的好方法是什么?我想基本规则如下:

  • 所有数字
  • 全部积极
  • 最多 25 个字符(可能更多,但暂时会这样做)

如果现在还有更多规则,那可能就是这样。

4

3 回答 3

1

RegEx 模式怎么样:http ://regexlib.com/REDetails.aspx?regexp_id=45 8

于 2010-05-05T04:09:48.563 回答
1

你可以试试Int64.TryParse这会给你一个±9223372036854775807的范围

于 2010-05-05T05:31:33.130 回答
1

如果您的约束条件是字符串必须不为空,只能是数字和 <= 25 个字符,那么您可以简单地执行以下操作:

static bool IsValidPhoneNumber(string phoneNumber)
{
    return !string.IsNullOrEmpty(phoneNumber)
        && (phoneNumber.Length <= 25)
        && phoneNumber.All(c => char.IsNumber(c));
}

如果您的约束更复杂(例如,字符串可以包含像“123-456-7890”这样的数字分组或像“(123)4567890”这样的括号),那么您应该使用RegEx。

于 2010-05-05T05:33:50.500 回答