有了这个工具,小白也能快速写出复杂正则了

正则表达式真的可谓是学了忘,忘了学,好不容易写出一些能用的正则,过个几个月就忘记这玩意到底有啥用了。笔者反正起码学过正则两回了,现在处于认命的阶段。

之前就想过市面上应该有个工具可以帮助我们快速生成正则表达式,这不最近还就真的发现了这么一个新库: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 及它的实现,能对你产出正则有帮助。

参考资料

[1]

super-expressive: https://github.com/francisrstokes/super-expressive

学习交流

  • 关注公众号【前端宇宙】,每日获取好文推荐

  • 添加微信,入群交流


“在看和转发”就是最大的支持

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值