/** * Module exports. */ module.exports = shExpMatch; /** * Returns true if the string matches the specified shell * expression. * * Actually, currently the patterns are shell expressions, * not regular expressions. * * Examples: * * ``` js * shExpMatch("http://home.netscape.com/people/ari/index.html", "*\/ari/*") * // is true. * * shExpMatch("http://home.netscape.com/people/montulli/index.html", "*\/ari/*") * // is false. * ``` * * @param {String} str is any string to compare (e.g. the URL, or the hostname). * @param {String} shexp is a shell expression to compare against. * @return {Boolean} true if the string matches the shell expression. */ function shExpMatch (str, shexp) { var re = toRegExp(shexp); return re.test(str); } /** * Converts a "shell expression" to a JavaScript RegExp. * * @api private */ function toRegExp (str) { str = String(str) .replace(/\?/g, '.') .replace(/\*/g, '(.*)'); return new RegExp('^' + str + '$'); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
test | Folder | 0755 |
|
|
.npmignore | File | 61 B | 0644 |
|
.travis.yml | File | 318 B | 0644 |
|
CHANGELOG.md | File | 6.03 KB | 0644 |
|
README.md | File | 3.04 KB | 0644 |
|
dateRange.js | File | 2.28 KB | 0644 |
|
dnsDomainIs.js | File | 699 B | 0644 |
|
dnsDomainLevels.js | File | 561 B | 0644 |
|
dnsResolve.js | File | 638 B | 0644 |
|
index.js | File | 3.49 KB | 0644 |
|
isInNet.js | File | 1.27 KB | 0644 |
|
isPlainHostName.js | File | 439 B | 0644 |
|
isResolvable.js | File | 425 B | 0644 |
|
localHostOrDomainIs.js | File | 1.1 KB | 0644 |
|
myIpAddress.js | File | 1.01 KB | 0644 |
|
package.json | File | 2.48 KB | 0644 |
|
shExpMatch.js | File | 997 B | 0644 |
|
timeRange.js | File | 3.19 KB | 0644 |
|
weekdayRange.js | File | 2.14 KB | 0644 |
|