V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Vegetable
V2EX  ›  正则表达式

你们会给正则表达式写注释吗?

  •  
  •   Vegetable · 2019-09-11 16:55:44 +08:00 · 3587 次点击
    这是一个创建于 1660 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如代码里出现了这个身份证的正则(网上搜的,写的不太好)

    const idcardPattern = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/
    
    

    现在我要检查这个正则写的对不对,有点反人类了...

    我甚至很晚才知道正则表达式可以通过(?#这种方式)写注释...

    6 条回复    2019-09-11 19:17:07 +08:00
    xream
        1
    xream  
       2019-09-11 18:07:12 +08:00   ❤️ 1
    https://www.debuggex.com/ 可视化的工具很多
    zhujinliang
        2
    zhujinliang  
       2019-09-11 18:28:46 +08:00 via iPhone
    我要是写的话正则用拼字符串一行一行的写,注释就是代码注释
    stillyu
        3
    stillyu  
       2019-09-11 19:02:37 +08:00 via iPhone
    身份证号用最后一位数的计算算法来验证,不是更好
    ODD10
        4
    ODD10  
       2019-09-11 19:11:33 +08:00 via iPhone
    一般只写用途吧
    mcfog
        5
    mcfog  
       2019-09-11 19:11:55 +08:00   ❤️ 1
    我选择删掉正则用普通代码实现,而不是给正则加注释来假装这东西是可以被维护的
    amazingrise
        6
    amazingrise  
       2019-09-11 19:17:07 +08:00 via Android
    推荐 regexr.com
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1536 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:15 · PVG 01:15 · LAX 10:15 · JFK 13:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.