【问题标题】:Regular Expression Validation For Indian Phone Number and Mobile number印度电话号码和手机号码的正则表达式验证
【发布时间】:2013-08-23 11:28:48
【问题描述】:

我想验证印度电话号码和手机号码。手机号和手机号格式如下:

陆线号码

03595-259506
03592 245902
03598245785

手机号

9775876662
0 9754845789
0-9778545896
+91 9456211568
91 9857842356
919578965389

我想要一个正则表达式中的正则表达式。我尝试了以下正则表达式,但它无法正常工作。

{^\+?[0-9-]+$}

【问题讨论】:

    标签: regex phone-number


    【解决方案1】:

    地线号码

    03595-259506
    03592 245902
    03598245785
    

    你可以用这个

    \d{5}([- ]*)\d{6}
    

    所有人的新功能;)

    OLD: ((\+*)(0*|(0 )*|(0-)*|(91 )*)(\d{12}+|\d{10}+))|\d{5}([- ]*)\d{6}
    NEW: ((\+*)((0[ -]*)*|((91 )*))((\d{12})+|(\d{10})+))|\d{5}([- ]*)\d{6}
    
    9775876662
    0 9754845789
    0-9778545896
    +91 9456211568
    91 9857842356
    919578965389
    
    03595-259506
    03592 245902
    03598245785
    

    这个网站对我有用,也许对你有用。;)http://gskinner.com/RegExr/

    【讨论】:

      【解决方案2】:

      手机号:

      const re = /^[6-9]{1}[0-9]{9}$/;
      

      【讨论】:

      • 相对于the accepted answer,这似乎是一个有用的补充,它仅适用于固定电话格式。但是为什么这比 @parth’s answer 更受欢迎,它声称支持固定电话 移动格式?
      • 另外,像其他答案一样,添加您对此进行评估的测试用例会很有用,以帮助展示它将涵盖的格式范围。
      【解决方案3】:

      印度的所有手机号码都以 9876 开头强>。现在,您可能不会在意前缀(+91 或 0)。如果这是您的情况,那么您可以从网站 regextester.com 获得帮助,或者您可以使用 r'^(+91[-\s]?)?[0]?(91)?[789] \d{9}$'

      如果您想验证带有前缀(+91 或 0)的电话号码,请使用:r'^[6-9]\d{9}$'

      【讨论】:

        【解决方案4】:

        您可以实现以下正则表达式 正则表达式 = '^[6-9][0-9]{9}$'

        【讨论】:

          【解决方案5】:

          对于印度手机号码

          正则表达式验证 11 或 12(以 0 或 91 开头)数字

          String regx = "(0/91)?[7-9][0-9]{9}";
          
          String mobileNumber = "09756432848";
          
          check 
          
          if(mobileNumber.matches(regx)){
             "VALID MOBILE NUMBER"
          }else{
             "INVALID MOBILE NUMBER"
          }
          

          您可以通过从正则表达式(即 regx)中删除 "(0/91)?" 来检查 10 位手机号码

          【讨论】:

            【解决方案6】:

            我将以下内容用于我的一个 python 项目

            正则表达式

            (\+91)?(-)?\s*?(91)?\s*?(\d{3})-?\s*?(\d{3})-?\s*?(\d{4})
            

            Python 用法

            re.search(re.compile(r'(\+91)?(-)?\s*?(91)?\s*?(\d{3})-?\s*?(\d{3})-?\s*?(\d{4})'), text_to_search).group()
            

            解释

            (\+91)? // optionally match '+91'
            (91)?   // optionally match '91'
            -?      // optionally match '-'
            \s*?    // optionally match whitespace
            (\d{3}) // compulsory match 3 digits
            (\d{4}) // compulsory match 4 digits
            

            经过测试并适用于

            9992223333
            +91 9992223333
            91 9992223333
            91999 222 3333
            +91999 222 3333
            +91 999-222-3333
            +91 999 222 3333
            91 999 222 3333
            999 222 3333
            +919992223333
            

            【讨论】:

              【解决方案7】:

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

              /^[(]+\ ++\d{2}[)]+[^0]+\d{9}/

              【讨论】:

              • 这是匹配 ((((((((( 12)))))))))))))))))))))))))*$ù^^<q!§à@çè"é """123456789jsqfh khe alkjlkjrh erj kjhklerjaht lekjarhtlkjrt 不确定它是一个有效的电话号码。
              【解决方案8】:

              所有固定电话号码和手机号码

              ^[\d]{2,4}[- ]?[\d]{3}[- ]?[\d]{3,5}|([0])?(\+\d{ 1,2}[- ]?)?[789]{1}\d{9}$

              【讨论】:

                【解决方案9】:
                var phonereg = /^(\+\d{1,3}[- ]?)?\d{10}$/;
                

                【讨论】:

                • 请为未来的访问者解释正则表达式。
                • 你能解释一下你的代码吗?这不是不言自明的
                【解决方案10】:

                移动和固定号码:(?:\s+|)((0|(?:(\+|)91))(?:\s|-)*(?:(?:\d(?:\s|-)*\d{9})|(?:\d{2}(?:\s|-)*\d{8})|(?:\d{3}(?:\s|-)*\d{7}))|\d{10})(?:\s+|)

                说明:

                (?:\s+|)                    // leading spaces
                ((0|(?:(\+|)91))            // prefixed 0, 91 or +91
                (?:\s|-)*                   // connecting space or dash (-)
                (?:(?:\d(?:\s|-)*\d{9})|    // 1 digit STD code & number with connecting space or dash
                (?:\d{2}(?:\s|-)*\d{8})|    // 2 digit STD code & number with connecting space or dash
                (?:\d{3}(?:\s|-)*\d{7})|    // 3 digit STD code & number with connecting space or dash
                \d{10})                     // plain 10 digit number
                (?:\s+|)                    // trailing spaces
                

                我在下面的文字中tested

                9775876662
                0 9754845789
                0-9778545896
                +91 9456211568
                91 9857842356
                919578965389
                
                0359-2595065
                0352 2459025
                03598245785
                07912345678
                01123456789
                sdasdcsd
                +919898101353
                dasvsd0 
                +91 dacsdvsad
                davsdvasd
                
                0112776654
                

                【讨论】:

                  【解决方案11】:

                  使用下面的正则表达式

                  ^(\+91[\-\s]?)?[0]?(91)?[789]\d{9}$
                  

                  这将支持以下格式:

                  1. 8880344456
                  2. +918880344456
                  3. +91 8880344456
                  4. +91-8880344456
                  5. 08880344456
                  6. 918880344456

                  【讨论】:

                  • @Ajay 将正则表达式更新为:^(\+91[\-\s]?)?(\91[\-\s]?)?[0]?(91)?[123456789 ]\d{9}$) 用于验证 91-8883044456(如果您的情况需要)
                  【解决方案12】:

                  这真的很好用:

                  \+?\d[\d -]{8,12}\d
                  

                  匹配:

                  03598245785
                  9775876662
                  0 9754845789
                  0-9778545896
                  +91 9456211568
                  91 9857842356
                  919578965389
                  987-98723-9898
                  +91 98780 98802
                  06421223054
                  9934-05-4851
                  WAQU9876567892
                  ABCD9876541212
                  98723-98765
                  

                  不匹配:

                  2343
                  234-8700
                  1 234 765
                  

                  【讨论】:

                  • 这个正则表达式也接受这些不:(@5094 10574
                  【解决方案13】:

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

                     ^[0-9\-\(\)\, ]+$
                  

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-03-24
                    • 1970-01-01
                    • 1970-01-01
                    • 2014-04-18
                    • 1970-01-01
                    相关资源
                    最近更新 更多