【问题标题】:Regular expression for Indian mobile phone numbers?印度手机号码的正则表达式?
【发布时间】:2017-05-05 16:07:53
【问题描述】:

我正在寻找一个符合以下要求的正则表达式:

  • 仅包含 10 位数字(仅数字)
  • 以 9 开​​头。

这些例子应该匹配:

  • 9999999999
  • 9876543210

这些示例不应匹配:

  • 999999999
  • 1234567890
  • 8912456789
  • qwe3456&ert

它基本上是针对印度手机号码的。

请提供示例,我已经在 Google 上搜索过,这些答案提供了过度验证。

【问题讨论】:

  • 如果这个问题有答案,请标记为这样
  • 这个正则表达式会激怒 DoCoMo 和其他新运营商的消费者。

标签: c# regex


【解决方案1】:

试试这样的:

^9\d{9}$

【讨论】:

  • 更新你的答案.. (\+91)?(-)?\s*?(91)?\s*?([6-9]{1}\d{2}) -?\s*?(\d{3})-?\s*?(\d{4}).. 印度数字以 6、7、8 或 9.. 开头。
【解决方案2】:

我总是更喜欢可以在任何引擎上使用的 RE(所以没有花哨的 "\d" 东西):

^9[0-9]{9}$

或者,在紧要关头,

^9[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$

如果 RE 引擎甚至没有 "{}"

是的,我知道 C# 引擎可以同时执行 "\d""{}",但并非总是如此。

【讨论】:

  • 这很有趣 - 我不知道任何不支持 \d{n} 的正则表达式实现。
  • 旧 UNIX 上的一些“次要”RE 工具(sed/grep/etc)没有这些工具。特别是在单用户模式下具有不同二进制文件的系统上(静态链接以便没有依赖关系)。
【解决方案3】:

试试这个已经测试过了

^([7-9]{1})([0-9]{9})$

【讨论】:

    【解决方案4】:

    ^9[0-9]{9}$

    【讨论】:

      【解决方案5】:

      试试这个已经测试过了

      ^([9]{1})([0-9]{9})$
      

      【讨论】:

        【解决方案6】:

        看看这个...... 表达式

        ^((\+){0,1}91(\s){0,1}(\-){0,1}(\s){0,1}){0,1}9[0-9](\s){0,1}(\-){0,1}(\s){0,1}[1-9]{1}[0-9]{7}$
        

        说明:这个表达式是为了验证印度手机号码

        匹配:

        9836193498
        +919836193498
        9745622222

        不匹配:

        +9197456222222
        8745622222
        9836193481

        【讨论】:

          【解决方案7】:
          9{1}\d{9}
          

          或者没有预定义的\d

          9{1}[0-9]{9}
          

          【讨论】:

          • 9{1} 中的 {1} 是不是有点多余?
          • 另外,这匹配连续二十个 9。你需要锚。
          • 我认为它会分别匹配前十个和后十个。
          【解决方案8】:
          ^([1-9]{1})([0-9]{9})$                 
          

          试试这个 10 位数的手机没有验证 = ^([1-9]{1})([0-9]{9})$ 此表达式对于印度手机号码非常有用。此表达式不允许第一个数字为零(例如:0123456789)。

          【讨论】:

          • 我对印度手机号码一无所知,但这显然不符合starts with 9的条件。
          【解决方案9】:

          试试这个

          ^(((\+?\(91\))|0|((00|\+)?91))-?)?[7-9]\d{9}$
          

          【讨论】:

          • 请在适当的时候使用code formatting。没有它,你的正则表达式中的每个\+ 都只是+,这显然不是你的意思。
          【解决方案10】:

          好吧,我写了这个正则表达式来验证印度手机号码。基本上印度的号码以 7-9 开头,不包括国家代码 (+91) 和 (0)。这个正则表达式将检查手机号码模式,包括国家代码。 例如

          • +91-8978989089
          • 09090898978
          • 9909876767
          • 0091-999897678 是有效号码

          正则表达式是:

          ^(?:(?:\+|0{0,2})91(\s*[\-]\s*)?|[0]?)?[789]\d{9}$

          你可以在这里检查/测试你的输入regex validation

          【讨论】:

            猜你喜欢
            • 2018-12-29
            • 2013-08-23
            • 1970-01-01
            • 1970-01-01
            • 2018-06-05
            • 1970-01-01
            • 2014-04-18
            • 1970-01-01
            相关资源
            最近更新 更多