What is has-glob?
The has-glob npm package is a utility that checks if a string contains a glob pattern. It is useful for determining whether a given string should be treated as a glob pattern, which is often used in file matching and searching operations.
What are has-glob's main functionalities?
Check if a string contains a glob pattern
This feature allows you to check if a given string contains a glob pattern. In the code sample, the string 'src/**/*.js' is checked, and the result is true because it contains a glob pattern.
const hasGlob = require('has-glob');
const result = hasGlob('src/**/*.js');
console.log(result); // true
Check if a string does not contain a glob pattern
This feature allows you to check if a given string does not contain a glob pattern. In the code sample, the string 'src/index.js' is checked, and the result is false because it does not contain a glob pattern.
const hasGlob = require('has-glob');
const result = hasGlob('src/index.js');
console.log(result); // false
Other packages similar to has-glob
is-glob
The is-glob package checks if a string is a glob pattern. It is similar to has-glob but focuses on determining if the entire string is a glob pattern rather than checking for the presence of a glob pattern within the string.
micromatch
Micromatch is a powerful globbing library that provides extensive pattern matching capabilities. It can be used to match files using glob patterns and offers more advanced features compared to has-glob, such as custom matching functions and extended glob syntax.
minimatch
Minimatch is a glob matching library that works similarly to micromatch. It is used to match file paths against glob patterns and provides a range of options for fine-tuning the matching behavior. Minimatch is more feature-rich compared to has-glob.
has-glob

Returns true
if an array has a glob pattern.
Install
Install with npm:
$ npm install --save has-glob
Usage
var hasGlob = require('has-glob');
hasGlob(['foo', 'bar', '*.js']);
hasGlob(['foo', 'bar', 'baz']);
True
The following all return true
:
hasGlob(['foo', 'bar', '*.js'])
hasGlob(['foo', 'bar', '!*.js'])
hasGlob(['foo', 'bar', '!foo'])
hasGlob(['foo', 'bar', '!foo.js'])
hasGlob(['foo', 'bar', '**/abc.js'])
hasGlob(['foo', 'bar', 'abc/*.js'])
hasGlob(['foo', 'bar', 'abc/{a,b}.js'])
hasGlob(['foo', 'bar', 'abc/{a..z}.js'])
hasGlob(['foo', 'bar', 'abc/{a..z..2}.js'])
hasGlob(['foo', 'bar', 'abc/@(a).js'])
hasGlob(['foo', 'bar', 'abc/!(a).js'])
hasGlob(['foo', 'bar', 'abc/+(a).js'])
hasGlob(['foo', 'bar', 'abc/*(a).js'])
hasGlob(['foo', 'bar', 'abc/?(a).js'])
hasGlob(['foo', 'bar', 'abc/@.js'])
hasGlob(['foo', 'bar', 'abc/!.js'])
hasGlob(['foo', 'bar', 'abc/+.js'])
hasGlob(['foo', 'bar', 'abc/*.js'])
hasGlob(['foo', 'bar', 'abc/?.js'])
hasGlob(['foo', 'bar', 'abc/(aaa|bbb).js'])
hasGlob(['foo', 'bar', 'abc/?.js'])
hasGlob(['foo', 'bar', '?.js'])
hasGlob(['foo', 'bar', '[abc].js'])
hasGlob(['foo', 'bar', '[^abc].js'])
hasGlob(['foo', 'bar', 'a/b/c/[a-z].js'])
hasGlob(['foo', 'bar', '[a-j]*[^c]b/c'])
Also works with strings:
hasGlob('*.js')
hasGlob('!*.js')
hasGlob('!foo')
hasGlob('!foo.js')
hasGlob('**/abc.js')
hasGlob('abc/*.js')
False
The following all return false
:
hasGlob([])
hasGlob([null])
hasGlob([undefined])
hasGlob([{}])
hasGlob(['.'])
hasGlob(['foo', 'bar', 'aa'])
hasGlob(['foo', 'bar', 'abc.js'])
hasGlob(['foo', 'bar', 'abc/def/ghi.js'])
About
Related projects
- has-glob: Returns
true
if an array has a glob pattern. | homepage
- is-glob: Returns
true
if the given string looks like a glob pattern or an extglob pattern… more | homepage
- is-negated-glob: Returns an object with a
negated
boolean and the !
stripped from negation patterns. Also… more | homepage
- is-valid-glob: Return true if a value is a valid glob pattern or patterns. | homepage
- micromatch: Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)
To generate the readme and API documentation with verb:
$ npm install -g verb verb-generate-readme && verb
Running tests
Install dev dependencies:
$ npm install -d && npm test
Author
Jon Schlinkert
License
Copyright © 2016, Jon Schlinkert.
Released under the MIT license.
This file was generated by verb-generate-readme, v0.1.30, on September 08, 2016.