【问题标题】:C# Regex to validate phone numberC#正则表达式验证电话号码
【发布时间】:2012-02-13 02:29:45
【问题描述】:

如果有人可以帮助我使用电话号码的正则表达式,那就太好了。以下是条件:

  • 如果 + 存在,那么它应该是第一个字符
  • 允许的字符是数字 ( ) 空格 - 和 .
  • 最少 6 个数字,最多 12 个数字
  • ( , ) 和空格可以出现在字符串中的任何位置
  • - 不应该是第一个和最后一个字符,也不应该出现在 + 之后,如果 + 存在的话。

以下是一些有效数字:

  • +93483227359
  • +1 703 335 65123
  • 34565464
  • 001 (703) 332-6261
  • +1703.338.6512
  • +934-83227359
  • (111)123-4567
  • 111-123-4567

提前致谢

【问题讨论】:

  • 只是检查一下,您确定要将“+)-)-)333(((,111” 成为有效的电话号码吗?
  • @JonSkeet 好吧,我很确定 tel:+)-)-)333(((,111 是一个有效的 tel URI,所以有人可能会争辩说,如果它对 RFC 3966 来说足够好,那么...... :) 我会更担心最小和最大位数是国际有效的。
  • 确实,我自己的 + 后面是 12 位,所以如果以给定国家/地区本地的形式给出,它至少有 13 位长。

标签: c# regex


【解决方案1】:

尝试:

^\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d$

但它不处理数字计数

【讨论】:

  • @PabitraDash 这就是我写的。
【解决方案2】:

不完全是您问题的答案,但对于那些需要使用电话号码的人来说,有一个 Google 的 libphonenumber 的 .NET 端口:libphonenumber-csharp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2015-10-23
    • 1970-01-01
    • 2011-10-18
    • 2014-06-25
    相关资源
    最近更新 更多