这一次,小白也能快速写出复杂正则了,这个工具真牛逼!

点击上方蓝字关注前端真好玩,从此前端进阶不再难

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

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

如果觉得不错,素质三连、或者点个「赞」、「在看」都是对笔者莫大的支持,谢谢各位大佬啦~

- END -

欢迎同仁投稿,扫描下方二维码联系即可

转载同样可以联系下方二维码获取授权

你可能感兴趣的:(openssh,xhtml,c++11,svg,protobuf)