V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
920678778
V2EX  ›  问与答

求助正则表达式

  •  
  •   920678778 · Mar 11, 2017 · 2680 views
    This topic created in 3334 days ago, the information mentioned may be changed or developed.
    各位 V 友, 求一个能正确过滤 string 为合法号码的正则表达式, 包括常用 11 位手机号码, 紧急号码(110 等), 服务号码(95580 等), 400 开头的号码! 在线等!!!
    5 replies    2017-03-11 19:50:29 +08:00
    Cbdy
        1
    Cbdy  
       Mar 11, 2017 via Android
    不同语言、库用的正则是有点不同的,如果真的要求一个正则,应该告诉具体的使用场景。

    正则实质很简单,与 dfa 是等价的,三十分钟足够掌握。。。
    imn1
        2
    imn1  
       Mar 11, 2017
    正则不能判断是否合法
    920678778
        3
    920678778  
    OP
       Mar 11, 2017
    @Cbdy 就是在键盘上输入一串数字(比如:*#+1234567890), 然后判断这个字符串是不是正常的电话号码.这样子.
    ^((13[0-9])|(14[5,7])|(15[^4,\D])|(17[6-8])|(18[0-9]))\d{8}$, 找了一个匹配十一位电话号码的表达式. 但是一些紧急号码,和一些服务号没有包含进去.
    Rice
        4
    Rice  
       Mar 11, 2017 via iPhone
    据我的经验,正则是没法完全判断是否合法的
    srlp
        5
    srlp  
       Mar 11, 2017 via iPhone
    老实说,这种事情,不用正则更方便。而且这本身就不是简单的任务。

    如果不限制正则的话,可看 https://github.com/googlei18n/libphonenumber
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5747 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 06:59 · PVG 14:59 · LAX 23:59 · JFK 02:59
    ♥ Do have faith in what you're doing.