有了这个工具,小白也能快速写出复杂正则了
前端宇宙
共 1042字,需浏览 3分钟
·
2020-08-12 20:18
之前就想过市面上应该有个工具可以帮助我们快速生成正则表达式,这不最近还就真的发现了这么一个新库:super-expressive[1],短短几天已经 2400 Star 了,足以证明这个需求是很多人都需要的。
接下来我们来看看这个库是如何帮助我们生成我们想要的正则表达式的:
const SuperExpressive = require('super-expressive');
const myRegex = SuperExpressive()
.startOfInput
.optional.string('0x')
.capture
.exactly(4).anyOf
.range('A', 'F')
.range('a', 'f')
.range('0', '9')
.end()
.end()
.endOfInput
.toRegex();
// Produces the following regular expression:
/^(?:0x)?([A-Fa-f0-9]{4})$/
上述例子可以帮助我们生成一个验证 16 进制数字的正则表达式。库的 API 肯定存在学习成本,但是笔者把所有 API 都看了眼表示这都是些语义化的 API,如果你英文好的话马上就可以上手了。即使英文不好,花上半小时肯定能把这个库用熟了。
语义化的 API 对于团队成员都会很友好,不会出现今天学了过几个月就忘了的问题,并且别的同事阅读代码也能很清楚的知道你这段代码是想生成怎么样的正则表达式。
当然如果你觉得你还是想要把正则学好的话,笔者推荐你阅读下这个库的 API 及它的实现,能对你产出正则有帮助。
参考资料
super-expressive: https://github.com/francisrstokes/super-expressive
学习交流
关注公众号【前端宇宙】,每日获取好文推荐 添加微信,入群交流
评论