Socket
Socket
Sign inDemoInstall

glob-to-regexp

Package Overview
Dependencies
0
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.2 to 0.1.0

8

index.js

@@ -84,3 +84,9 @@ module.exports = function (glob, opts) {

return new RegExp("^" + reStr + "$",flags);
// When regexp 'g' flag is specified don't
// constrain the regular expression with ^ & $
if (!flags || !~flags.indexOf('g')) {
reStr = "^" + reStr + "$";
}
return new RegExp(reStr, flags);
};

2

package.json
{
"name": "glob-to-regexp",
"version": "0.0.2",
"version": "0.1.0",
"description": "Convert globs to regular expressions",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -14,23 +14,59 @@ var globToRegexp = require("./index.js");

assertMatch("*", "foo");
assertMatch("*", "foo", { flags: 'g' });
// Match the end
assertMatch("f*", "foo");
assertMatch("f*", "foo", { flags: 'g' });
// Match the start
assertMatch("*o", "foo");
assertMatch("*o", "foo", { flags: 'g' });
// Match the middle
assertMatch("f*uck", "firetruck");
assertMatch("f*uck", "firetruck", { flags: 'g' });
// Don't match without Regexp 'g'
assertNotMatch("uc", "firetruck");
// Match anywhere with RegExp 'g'
assertMatch("uc", "firetruck", { flags: 'g' });
// Match zero characters
assertMatch("f*uck", "fuck");
assertMatch("f*uck", "fuck", { flags: 'g' });
// More complex matches
assertMatch("*.min.js", "http://example.com/jquery.min.js");
assertMatch("*.min.*", "http://example.com/jquery.min.js")
assertMatch("*/js/*.js", "http://example.com/js/jquery.min.js")
assertMatch("*.min.*", "http://example.com/jquery.min.js");
assertMatch("*/js/*.js", "http://example.com/js/jquery.min.js");
// More complex matches with RegExp 'g' flag (complex regression)
assertMatch("*.min.*", "http://example.com/jquery.min.js", { flags: 'g' });
assertMatch("*.min.js", "http://example.com/jquery.min.js", { flags: 'g' });
assertMatch("*/js/*.js", "http://example.com/js/jquery.min.js", { flags: 'g' });
var testStr = "\\/$^+?.()=!|{},[].*"
assertMatch(testStr, testStr);
assertMatch(testStr, testStr, { flags: 'g' });
// Equivalent matches without/with using RegExp 'g'
assertNotMatch(".min.", "http://example.com/jquery.min.js");
assertMatch("*.min.*", "http://example.com/jquery.min.js");
assertMatch(".min.", "http://example.com/jquery.min.js", { flags: 'g' });
assertNotMatch("http:", "http://example.com/jquery.min.js");
assertMatch("http:*", "http://example.com/jquery.min.js");
assertMatch("http:", "http://example.com/jquery.min.js", { flags: 'g' });
assertNotMatch("min.js", "http://example.com/jquery.min.js");
assertMatch("*.min.js", "http://example.com/jquery.min.js");
assertMatch("min.js", "http://example.com/jquery.min.js", { flags: 'g' });
// Match anywhere (globally) using RegExp 'g'
assertMatch("min", "http://example.com/jquery.min.js", { flags: 'g' });
assertMatch("/js/", "http://example.com/js/jquery.min.js", { flags: 'g' });
assertNotMatch("/js*jq*.js", "http://example.com/js/jquery.min.js");
assertMatch("/js*jq*.js", "http://example.com/js/jquery.min.js", { flags: 'g' });
// Extended mode

@@ -43,2 +79,10 @@

// ?: Match one character with RegExp 'g'
assertMatch("f?o", "foo", { extended: true, flags: 'g' });
assertMatch("f?o", "fooo", { extended: true, flags: 'g' });
assertMatch("f?o?", "fooo", { extended: true, flags: 'g' });
assertNotMatch("?fo", "fooo", { extended: true, flags: 'g' });
assertNotMatch("f?oo", "foo", { extended: true, flags: 'g' });
assertNotMatch("foo?", "foo", { extended: true, flags: 'g' });
// []: Match a character range

@@ -49,2 +93,7 @@ assertMatch("fo[oz]", "foo", { extended: true });

// []: Match a character range and RegExp 'g' (regresion)
assertMatch("fo[oz]", "foo", { extended: true, flags: 'g' });
assertMatch("fo[oz]", "foz", { extended: true, flags: 'g' });
assertNotMatch("fo[oz]", "fog", { extended: true, flags: 'g' });
// {}: Match a choice of different substrings

@@ -56,2 +105,8 @@ assertMatch("foo{bar,baaz}", "foobaaz", { extended: true });

// {}: Match a choice of different substrings and RegExp 'g' (regression)
assertMatch("foo{bar,baaz}", "foobaaz", { extended: true, flags: 'g' });
assertMatch("foo{bar,baaz}", "foobar", { extended: true, flags: 'g' });
assertNotMatch("foo{bar,baaz}", "foobuzz", { extended: true, flags: 'g' });
assertMatch("foo{bar,b*z}", "foobuzz", { extended: true, flags: 'g' });
// More complex extended matches

@@ -74,6 +129,24 @@ assertMatch("http://?o[oz].b*z.com/{*.js,*.html}",

// More complex extended matches and RegExp 'g' (regresion)
assertMatch("http://?o[oz].b*z.com/{*.js,*.html}",
"http://foo.baaz.com/jquery.min.js",
{ extended: true, flags: 'g' });
assertMatch("http://?o[oz].b*z.com/{*.js,*.html}",
"http://moz.buzz.com/index.html",
{ extended: true, flags: 'g' });
assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}",
"http://moz.buzz.com/index.htm",
{ extended: true, flags: 'g' });
assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}",
"http://moz.bar.com/index.html",
{ extended: true, flags: 'g' });
assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}",
"http://flozz.buzz.com/index.html",
{ extended: true, flags: 'g' });
// Remaining special chars should still match themselves
var testExtStr = "\\/$^+.()=!|,.*"
assertMatch(testExtStr, testExtStr, { extended: true });
assertMatch(testExtStr, testExtStr, { extended: true, flags: 'g' });
console.log("Ok!");
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