Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including globrex with all npm packages installed. Try it out:

var globrex = require("globrex")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

globrex v0.1.2

Glob to regular expression with support for extended globs



Simple but powerful glob to regular expression compiler.


npm install globrex --save

Core Features

  • 💪 extended globbing: transform advance ExtGlob features
  • 📦 simple: no dependencies
  • 🛣️ paths: split paths into multiple RegExp segments


const globrex = require('globrex');

const result = globrex('p*uck')
// => { regex: /^p.*uck$/, string: '^p.*uckapos;, segments: [ /^p.*uck$/ ] }

result.regex.test('pluck'); // true


globrex(glob, options)

Type: function
Returns: Object

Transform globs intp regular expressions. Returns object with the following properties:


Type: RegExp

JavaScript RegExp instance.

Note: Read more about how to use RegExp on MDN.


This property only exists if the option filepath is true.

Note: filepath is false by default


Type: Array

Array of RegExp instances seperated by /. This can be usable when working with file paths or urls.

Example array could be:

[ /^foo$/, /^bar$/, /^([^\/]*)$/, '^baz\\.(md|js|txt)apos; ]


Type: RegExp

JavaScript RegExp instance build for testign against paths. The regex have different path seperators depending on host OS.


Type: String

Glob string to transform.


Type: Boolean
Default: false

Enable all advanced features from extglob.

Matching so called "extended" globs pattern like single character matching, matching ranges of characters, group matching, etc.

Note: Interprets [a-d] as [abcd]. To match a literal -, include it as first or last character.


Type: Boolean
Default: false

When globstar is false globs like '/foo/*' are transformed to the following '^\/foo\/.*apos; which will match any string beginning with '/foo/'.

When the globstar option is true, the same '/foo/*' glob is transformed to '^\/foo\/[^/]*apos; which will match any string beginning with '/foo/' that does not have a '/' to the right of it. '/foo/*' will match: '/foo/bar', '/foo/bar.txt' but not '/foo/bar/baz' or '/foo/bar/baz.txt'.

Note: When globstar is true, '/foo/**' is equivelant to '/foo/*' when globstar is false.


Type: Boolean
Default: false

Be forgiving about mutiple slashes, like /// and make everything after the first / optional. This is how bash glob works.


Type: String
Default: ''

RegExp flags (e.g. 'i' ) to pass to the RegExp constructor.


Type: Boolean
Default: false

Parse input strings as it was a file path for special path related features. This feature only makes sense if the input is a POSIX path like /foo/bar/hello.js or URLs.

When true the returned object will have an additional path object.

  • segment: Array containing a RegExp object for each path segment.
  • regex: OS specific file path RegExp. Path seperator used is based on the operating system.
  • globstar: Regex string used to test for globstars.

Note: Please only use forward-slashes in file path glob expressions Though windows uses either / or \ as its path separator, only / characters are used by this glob implementation. You must use forward-slashes only in glob expressions. Back-slashes will always be interpreted as escape characters, not path separators.


Learn more about advanced globbing here


MIT © Terkel Gjervig


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free