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

2019-09-11 16:55:44 +08:00
 Vegetable

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

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}$)/

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

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

3608 次点击
所在节点    正则表达式
6 条回复
xream
2019-09-11 18:07:12 +08:00
https://www.debuggex.com/ 可视化的工具很多
zhujinliang
2019-09-11 18:28:46 +08:00
我要是写的话正则用拼字符串一行一行的写,注释就是代码注释
stillyu
2019-09-11 19:02:37 +08:00
身份证号用最后一位数的计算算法来验证,不是更好
ODD10
2019-09-11 19:11:33 +08:00
一般只写用途吧
mcfog
2019-09-11 19:11:55 +08:00
我选择删掉正则用普通代码实现,而不是给正则加注释来假装这东西是可以被维护的
amazingrise
2019-09-11 19:17:07 +08:00
推荐 regexr.com

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/600098

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX