This package takes a regular expression and transforms it into a deterministic finite automata (DFA). One is able to add multiple regular expressions to the DFA with specified identifiers. The DFA is able to check whether it accepts input and is able to return the specified identifier corresponding to that input.
To install this module via the node package manager (npm) use the command:
npm install regex-to-dfa
Once the DFA is installed one can load it using:
var DFA = require('regex-to-dfa').DFA;
To create a new DFA which accepts any input corresponding to the regular expressions foo+
and ba*r
with identifiers A
and B
respectively:
var myDFA = new DFA(new RegExp(/foo+/), 'A');
myDFA.add(new RegExp(/ba*r/), 'B');
To check whether input is accepted one uses
var isAccepted = myDFA.accepts('foo');
console.log(isAccepted);
>>> true
isAccepted = myDFA.accepts('abc');
console.log(isAccepted);
>>> false
To check what label corresponds to the input one uses
var label = myDFA.acceptingID('bar');
console.log(label);
>>> B
label = myDFA.acceptingID('abc');
console.log(label);
>>> undefined
- All character classes, e.g.
.
,[\s\S]
,\w
,\W
,\d
,\D
,\s
,\S
- All character sets, e.g.
[ABC]
,[^ABC]
,[A-Z]
- All escaped characters, e.g.
\n
,\+
,\uFFFF
,\xFF
,\000
- All quantifiers and alternation, e.g.
+
,*
,{1,3}
,?
,|
- Groups, e.g.
(abc)