https://github.com/rangoo94/find-regexp-beginning
Find character which could be on regexp beginning
https://github.com/rangoo94/find-regexp-beginning
analysis character parser regexp
Last synced: about 1 year ago
JSON representation
Find character which could be on regexp beginning
- Host: GitHub
- URL: https://github.com/rangoo94/find-regexp-beginning
- Owner: rangoo94
- Created: 2018-02-13T16:02:54.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-13T16:11:30.000Z (over 8 years ago)
- Last Synced: 2025-03-02T06:18:52.219Z (over 1 year ago)
- Topics: analysis, character, parser, regexp
- Language: JavaScript
- Size: 36.1 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Find RegExp beginning
[](https://travis-ci.org/rangoo94/find-regexp-beginning)
[](https://codeclimate.com/github/rangoo94/find-regexp-beginning)
[](https://coveralls.io/github/rangoo94/find-regexp-beginning?branch=master)
[](https://www.npmjs.com/package/find-regexp-beginning)
Useful, when you need to to detect what could be the first character which will pass regular expression (i.e. for lexer optimizations)
## How to install
Package is available as `find-regexp-beginning` in NPM, so you can use it in your project using
`npm install find-regexp-beginning` or `yarn add find-regexp-beginning`
## What are requirements?
Code itself is written in ES6 and should work in Node.js 4+ environment (best in Node.js 9+).
If you would like to use it in browser or older development, there is also transpiled and bundled (UMD) version included.
You can use `find-regexp-beginning/browser` in your requires or `FindRegexpBeginning` in global environment (in browser):
```js
// Load library
const findRegexpBeginning = require('find-regexp-beginning/browser')
const result = findRegexpBeginning(/abc/i) // [ 'a', 'A' ]
```
## How to use it?
Most importantly first argument is `RegExp` instance.
```js
const findRegexpBeginning = require('find-regexp-beginning')
const result1 = findRegexpBeginning(/abc/) // [ 'a' ]
const result2 = findRegexpBeginning(/abc/i) // [ 'a', 'A' ]
```
This function returns either list of possible characters on beginning
or `null` (when there is negation or any object is accepted).
Additionally, there is second argument `maxCharacters` (default: `15`).
It's important when you want to not detect characters if they exceed number of maximum characters,
i.e.:
```js
const findRegexpBeginning = require('find-regexp-beginning')
const result1 = findRegexpBeginning(/[1-9]/) // [ '1', '2', '3', '4', '5', '6', '7', '8', '9' ]
const result2 = findRegexpBeginning(/[1-9]/, 9) // [ '1', '2', '3', '4', '5', '6', '7', '8', '9' ]
const result3 = findRegexpBeginning(/[1-9]/, 100) // [ '1', '2', '3', '4', '5', '6', '7', '8', '9' ]
const result4 = findRegexpBeginning(/[1-9]/, Infinity) // [ '1', '2', '3', '4', '5', '6', '7', '8', '9' ]
const result5 = findRegexpBeginning(/[1-9]/, 3) // null
```