随机变化电话号码的数据验证

发布于 2024-08-31 00:51:12 字数 382 浏览 7 评论 0原文

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

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

在此方法中,我使用 Int.TryParse 来验证传入的数字(即不为空,是数字...)。我后来意识到这可能不是最好的方法,因为这样我就只能使用 ± 2147483647 的号码。显然,电话号码并不总是这种情况。

有什么好的、简单的方法来验证电话号码?我想基本规则如下:

  • 全数字
  • 全正
  • 最多 25 个字符(可能更多,但这暂时可以)

目前无法确定是否还有更多规则,可能就是这样。

I am storing phone numbers of varying lengths in my WPF (C#, VS 08) App.

I store them as strings. My question is about my method AddNewPhoneNo(string phoneNo).

In this method, I use Int.TryParse to validate the incoming number (i.e. not null, is numeric...). I've since realized this is probably not the best way to do this, because then I am limited to a number which is ± 2147483647. Definetly this is not always the case with phone numbers.

What is a good, easy way to validate phone numbers? I guess the basic rules would be as follows:

  • All numeric
  • All positive
  • Upto 25 chars (could be more, but this will to do for time being)

Can't thing if theres any more rules at the moment, that's probably it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

难得心□动 2024-09-07 00:51:12

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

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

如果您的约束条件更复杂(例如,字符串可以包含数字分组,如“123- 456-7890”或括号如“(123)4567890”)那么你应该使用正则表达式。

If your constraints are that the string must be not-null, nothing but numbers, and <= 25 chars, then you can simply do the following:

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

If your constraints are more complex (e.g. the string can contain digit grouping like "123-456-7890" or parenthesis like "(123)4567890") then you should go with RegEx.

自此以后,行同陌路 2024-09-07 00:51:12

您可以尝试 Int64.TryParse 这将为您提供 ±9223372036854775807 的范围

You could try Int64.TryParse which would give you a range of ±9223372036854775807

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文