推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
azh7138m

使用高阶函数构造自己的校验器

  •  2
     
  •   azh7138m · Feb 8, 2019 · 5038 views
    This topic created in 2677 days ago, the information mentioned may be changed or developed.

    Github 传送门

    之前看了轮子哥的文章 使用高阶函数开发语法分析器,便想用 js 重新实现一下,就有了这个轮子。

    她是什么

    有一点 combinator 的感觉,提供了几个函数可以让你解析用 BNF 描述规则的东西。

    她能做什么

    • tokenizer
    • AST 虽然简陋了点也算是吧(
    • calculator 四则运算是每个 parser 的必经之路
    • rfc1738 校验器 按照 rfc 来构建校验器,妈妈再也不用担心我写的 validator 被人怼啦
    • json 解析器 实现了 JSON.parse 比较拙劣,性能和原生方法差 300 倍 ( node10,node8 下通常是 500 倍)

    她有哪些特点

    短小(指代码

    核心实现 150 行,还包括了许多辅助函数和类型

    测试覆盖全面

    -----------|----------|----------|----------|----------|-------------------|
    File       |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
    -----------|----------|----------|----------|----------|-------------------|
    All files  |      100 |      100 |      100 |      100 |                   |
     parser.ts |      100 |      100 |      100 |      100 |                   |
    -----------|----------|----------|----------|----------|-------------------|
    

    她有哪些问题

    有的文件使用了 ts,但实际数据的类型不是那个样子的(笑

    如何食用

    package.json

    Supplement 1  ·  Feb 8, 2019

    全是收藏,没有star,感觉被嫖了,没给钱 被白嫖

    3 replies    2019-02-08 16:56:01 +08:00
    Actrace
        1
    Actrace  
       Feb 8, 2019
    高阶领主表示你很聪明,赞赏了你。
    qdwang
        2
    qdwang  
       Feb 8, 2019 via iPhone
    春节期间还在努力学习练习,乃我辈楷模,佩服!
    azh7138m
        3
    azh7138m  
    OP
       Feb 8, 2019
    @qdwang 春节只补充了测试(
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5829 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 02:23 · PVG 10:23 · LAX 19:23 · JFK 22:23
    ♥ Do have faith in what you're doing.