SRL-JavaScript
JavaScript implementation of Simple Regex 🎉🎉🎉
Because of the JavaScript regex engine, there is something different from Simple Regex
- Support
as
to assign capture name with CODE but not regex engine. - NOT support
if already had/if not already had
- NO
first match
and NOall lazy
, since in JavaScriptlazy
means non-greedy (matching the fewest possible characters).
Installation
npm install srl
Usage
Class SRL accepts a Simple Regex Language string as input, and return the builder for the query.
The builder can agent test/exec
method to the generated regex object. Or you can use get()
to take the generated regex object.
const SRL = const query = 'letter exactly 3 times' query // truequery // [ 'aaa', index: 0, input: 'aaa' ] query // /[a-z]{3}[0-9]*$/g
Required Node 8.0+ for the ES6 support, Or you can use Babel to support Node below 6.0.
Using Webpack and babel-loader to pack it if want to use in browsers.
Additional
In SRL-JavaScript we apply g
flag as default to follow the Simple Regex "standard", so we provide more API to use regex conveniently.
-
isMatching
- Validate if the expression matches the given string.const query = 'starts with letter twice'query // falsequery // true -
getMatch
- Get first match of the given string, like runregex.exec
once.const query = 'capture (letter twice) as word whitespace'query // [ 'aa ', 'aa', index: 0, input: 'aa bb cc dd', word: 'aa' ] -
getMatches
- Get all matches of the given string, like a loop to runregex.exec
.const query = 'capture (letter twice) as word whitespace'query/*** [* [ 'aa ', 'aa', index: 0, input: 'aa bb cc dd', word: 'aa' ],* [ 'bb ', 'bb', index: 3, input: 'aa bb cc dd', word: 'bb' ],* [ 'cc ', 'cc', index: 6, input: 'aa bb cc dd', word: 'cc' ]* ]*/ -
removeModifier
- Remove specific flag.const query = 'capture (letter twice) as word whitespace'queryquery // /([a-z]{2})\s/
Development
First, clone repo and init submodule for test.
SRL-JavaScript depends on Mocha and Istanbul to test code. You can use them like this:
npm install npm test # test npm run coverage # Get coverage locally
How to write Rules, see: Test-Rules.
License
SRL-JavaScript is published under the MIT license. See LICENSE for more information.