2.0.5 • Published 3 years ago

visual-regex v2.0.5

Weekly downloads
2
License
ISC
Repository
github
Last release
3 years ago

visualRegex

Visual regular expressions.

Support convert to canvas and DOM.

For now, only support JavaScript's Regular-Expression syntax.

More about Regular-Expression syntax: MDN

HomePage

https://wangwl.net/r/vr

Usage

visual regex to canvas

import visualRegex from 'visual-regex';

let visual = visualRegex(/https?:\/\/wangwl\.net(?<path>\/r\/vr)/);
let canvas = visual.visualCanvas();

document.body.appendChild(canvas);  // below image

visual regex to DOM

import visualRegex from 'visual-regex';

let visual = visualRegex(/https?:\/\/wangwl\.net(?<path>\/r\/vr)/);
let spanEle = visual.visualDom({prefix: 'vr_'});

spanEle.className = "vr_root";
document.body.appendChild(spanEle);

// <span class="vr_root">
//     <span class="vr_literal">http</span>
//     <span class="vr_literal">s</span>
//     <span class="vr_closure">?</span>
//     <span class="vr_literal">:\/\/wangwl\.net</span>
//     <span class="vr_groupWrapper">
//         <span class="vr_namedGroup">(?&lt;path&gt;</span>
//         <span class="vr_literal">\/r\/vr</span>
//         <span class="vr_namedGroup">)</span>
//     </span>
// </span>

API

const visualRegex = (regex: typeof RegExp) => ({
    visualCanvas: () => HTMLCanvasElement,
    visualDom: (visualDomOpt?: IVisualDomOpt) => HTMLElement
})

interface IVisualDomOpt {
    tagName?: 'span',
    prefix?: 'vr_',
    className?: {
        groupWrapper?: 'groupWrapper',
        lookaroundWrapper?: 'lookaroundWrapper',
        setWrapper?: 'setWrapper',

        normalGroup?: 'normalGroup',
        nonCaptureGroup?: 'nonCaptureGroup',
        namedGroup?: 'namedGroup',
        lookahead?: 'lookahead',
        negativeLookahead?: 'negativeLookahead',
        lookbehind?: 'lookbehind',
        negativeLookbehind?: 'negativeLookbehind',

        either?: 'either',

        literal?: 'literal',
        literalBlank?: 'literalBlank',
        specialSet?: 'specialSet',
        boundary?: 'boundary',
        set?: 'set',
        backRef?: 'backRef',
        dot?: 'dot',

        closure?: 'closure',
        nonGreedyClosure?: 'nonGreedyClosure'
    }
}
2.0.3

3 years ago

2.0.2

3 years ago

2.0.5

3 years ago

2.0.1

3 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago