rregex v1.10.11
rregex
A dependency-free WebAssembly build of Rust Regex for Javascript
Why Rust Regex
Rust has a powerful Regex library with a lot of features that don't exists en the standard Regex
object
See the official documentation for more detail
Install
# NPM
npm install rregex
# Yarn
yarn add rregex
# PNPM
pnpm add rregex
# Deno
deno add @rregex/rregex
# JSR
npx jsr add @rregex/rregex
Supported Runtimes
This package includes builds for multiple runtimes
Runtime | Import | version |
---|---|---|
Node.js (esm) | import { RRegex, RRegexSet } from 'rregex' | * |
Node.js (commonjs) | const { RRegex, RRegexSet } = require('rregex') | * |
Deno | import { RRegex, RRegexSet } from '@rregex/rregex' | >=1.10.8 |
Bun | import { RRegex, RRegexSet } from '@rregex/rregex' | >=1.10.8 |
Cloudflare Workers | import { RRegex, RRegexSet } from 'rregex/lib/cf.mjs' | >=1.10.8 |
Browser | TODO | |
Standalone | TODO |
Benchmarks
In general terms rregex
is at least 1 order of magnitud slower than the native RegExp
object, but still have a good performance. Unless you required some of the features that rregex
provides, you should always consider using the native RegExp
object
Note: In order to compare with native regex these benchmarks follow the
mariomka/regex-benchmark
structure
Known Issues
If you call splitn(text, limit)
and the expected result length is equal to limit - 1
the result will include an extra item ""
, this behavior does not happen if limit
es greater. fixed at >=1.3
const regex = new RRegex(",");
expect(regex.splitn("a,b,c", 0)).toEqual([]);
expect(regex.splitn("a,b,c", 1)).toEqual(["a,b,c"]);
expect(regex.splitn("a,b,c", 2)).toEqual(["a", "b,c"]);
expect(regex.splitn("a,b,c", 3)).toEqual(["a", "b", "c"]);
// This result includes an unexpected extra item
expect(regex.splitn("a,b,c", 4)).toEqual(["a", "b", "c", ""]);
expect(regex.splitn("a,b,c", 5)).toEqual(["a", "b", "c"]);
expect(regex.splitn("abc", 0)).toEqual([]);
expect(regex.splitn("abc", 1)).toEqual(["abc"]);
// This result includes an unexpected extra item
expect(regex.splitn("abc", 2)).toEqual(["abc", ""]);
expect(regex.splitn("abc", 3)).toEqual(["abc"]);
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
4 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
6 months ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago