Socket
Socket
Sign inDemoInstall

regexpp

Package Overview
Dependencies
0
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

regexpp

Regular expression parser for ECMAScript.


Version published
Maintainers
1
Weekly downloads
16,346,362
decreased by-9.28%

Weekly downloads

Package description

What is regexpp?

The regexpp npm package is a library for parsing and manipulating regular expressions in JavaScript. It provides a detailed regular expression parser with a visitor interface for traversing abstract syntax trees, and utilities for working with regular expressions.

What are regexpp's main functionalities?

Regular Expression Parser

This feature allows you to parse a regular expression literal into an abstract syntax tree (AST), which can then be traversed or manipulated.

const { parseRegExpLiteral } = require('regexpp');
const ast = parseRegExpLiteral('/abc/g');

RegExp Visitor

This feature provides a visitor interface to traverse the AST nodes of a parsed regular expression, allowing you to perform operations on individual nodes.

const { RegExpParser, visitRegExpAST } = require('regexpp');
const parser = new RegExpParser();
const ast = parser.parsePattern('a|b');
visitRegExpAST(ast, {
  onCharacterEnter(node) {
    console.log(node.value);
  }
});

RegExp Validator

This feature allows you to validate a regular expression pattern for syntax errors, which is useful for ensuring patterns are correct before using them.

const { RegExpValidator } = require('regexpp');
const validator = new RegExpValidator();
try {
  validator.validatePattern('(?<name>a)');
} catch (error) {
  console.error(error.message);
}

Other packages similar to regexpp

Readme

Source

regexpp

npm version Downloads/month Build Status codecov Dependency Status

A regular expression parser for ECMAScript.

💿 Installation

$ npm install regexpp
  • require Node.js 8 or newer.

📖 Usage

import {
    AST,
    RegExpParser,
    RegExpValidator,
    RegExpVisitor,
    parseRegExpLiteral,
    validateRegExpLiteral,
    visitRegExpAST
} from "regexpp"

parseRegExpLiteral(source, options?)

Parse a given regular expression literal then make AST object.

This is equivalent to new RegExpParser(options).parseLiteral(source).

  • Parameters:
    • source (string | RegExp) The source code to parse.
    • options? (RegExpParser.Options) The options to parse.
  • Return:
    • The AST of the regular expression.

validateRegExpLiteral(source, options?)

Validate a given regular expression literal.

This is equivalent to new RegExpValidator(options).validateLiteral(source).

  • Parameters:

visitRegExpAST(ast, handlers)

Visit each node of a given AST.

This is equivalent to new RegExpVisitor(handlers).visit(ast).

RegExpParser

new RegExpParser(options?)
parser.parseLiteral(source, start?, end?)

Parse a regular expression literal.

  • Parameters:
    • source (string) The source code to parse. E.g. "/abc/g".
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.
  • Return:
    • The AST of the regular expression.
parser.parsePattern(source, start?, end?, uFlag?)

Parse a regular expression pattern.

  • Parameters:
    • source (string) The source code to parse. E.g. "abc".
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.
    • uFlag? (boolean) The flag to enable Unicode mode.
  • Return:
    • The AST of the regular expression pattern.
parser.parseFlags(source, start?, end?)

Parse a regular expression flags.

  • Parameters:
    • source (string) The source code to parse. E.g. "gim".
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.
  • Return:
    • The AST of the regular expression flags.

RegExpValidator

new RegExpValidator(options)
validator.validateLiteral(source, start, end)

Validate a regular expression literal.

  • Parameters:
    • source (string) The source code to validate.
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.
validator.validatePattern(source, start, end, uFlag)

Validate a regular expression pattern.

  • Parameters:
    • source (string) The source code to validate.
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.
    • uFlag? (boolean) The flag to enable Unicode mode.
validator.validateFlags(source, start, end)

Validate a regular expression flags.

  • Parameters:
    • source (string) The source code to validate.
    • start? (number) The start index in the source code. Default is 0.
    • end? (number) The end index in the source code. Default is source.length.

RegExpVisitor

new RegExpVisitor(handlers)
visitor.visit(ast)

Validate a regular expression literal.

  • Parameters:

📰 Changelog

🍻 Contributing

Welcome contributing!

Please use GitHub's Issues/PRs.

Development Tools

  • npm test runs tests and measures coverage.
  • npm run build compiles TypeScript source code to index.js, index.js.map, and index.d.ts.
  • npm run clean removes the temporary files which are created by npm test and npm run build.
  • npm run lint runs ESLint.
  • npm run update:test updates test fixtures.
  • npm run update:ids updates src/unicode/ids.ts.
  • npm run watch runs tests with --watch option.

Keywords

FAQs

Last updated on 04 Apr 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc