0.4.3 • Published 10 months ago
oniguruma-to-js v0.4.3
oniguruma-to-js
Convert Oniguruma-flavor Regexp to JavaScript native RegExp.
Supported Oniguruma features:
[:alnum:]
,[:alpha:]
etc. POSIX bracket expressions(?x)
extended, free-spacing mode(?i:..)
flags modifiers(?>..)
atomic group viaregex
..*+
possessive quantifiers viaregex
\h
\H
hex digit shorthands\p{Blank}
\p{Print}
etc. Oniguruma-flavored unicode property escapes
Usage
npm i oniguruma-to-js
import { onigurumaToRegexp } from 'oniguruma-to-js'
const re = onigurumaToRegexp(`[[:alnum:]_]+`)
console.log(re) // /^[a-zA-Z0-9_]+$/
import { construct, syntaxLowering } from 'oniguruma-to-js'
const pattern = syntaxLowering(`(?x:
\d+ # Match one or more digits
\s* # Match zero or more whitespace characters
[A-Z]+ # Match one or more uppercase letters
)`)
console.log(pattern) // "\d+\s*[A-Z]+"
const re = construct(pattern)
console.log(re) // /\d+\s*[A-Z]+/
Additional Features
Lowering TextMate Grammar
Traverse all the regex patterns in a TextMate grammar, and apply syntaxLowering
to lower the syntax.
import { loweringTextmateGrammar } from 'oniguruma-to-js/textmate'
import grammar from '../path/to/grammars/json.json'
const lowered = loweringTextmateGrammar(grammar)
Note this function will not guarantee the correctness of the result, you may need to verify the result manually.
Sponsors
License
MIT License © 2024-PRESENT Anthony Fu
0.4.3
10 months ago
0.4.2
10 months ago
0.4.1
10 months ago
0.4.0
10 months ago
0.3.3
10 months ago
0.3.2
10 months ago
0.3.1
10 months ago
0.3.0
10 months ago
0.2.5
10 months ago
0.2.4
10 months ago
0.2.3
10 months ago
0.2.2
10 months ago
0.2.1
10 months ago
0.2.0
10 months ago
0.1.2
10 months ago
0.1.1
10 months ago
0.1.0
10 months ago