regexp-like
v1.1.1
Published
Get a RegExp object from a SQL LIKE string.
Downloads
79
Readme
regexp-like
Get a RegExp object from a SQL LIKE string.
Usage
var rexExpLIKE = require('regexp-like')
var jonnyLike = rexExpLIKE('John %')
jonnyLike.test('John Adams') // true
jonnyLike.test('John Wayne') // true
jonnyLike.test('Charles Adams') // false
jonnyLike.test('Johnathan Adams') // false
See LIKE for more information.
The conversion algorithm is not trivial so I've provided a simple mechanism for caching converted patterns. In this example, subsequent calls to regExpLIKE()
retrives the previously converted pattern from the cache. (Note the .cached
in the following!)
var rexExpLIKE = require('regexp-like').cached
rexExpLIKE('John %').test('John Adams') // true
rexExpLIKE('John %').test('John Wayne') // true
API documentation
Detailed API docs can be found here.
How the cache works
The cache is simply a hash and will grow indefinitely unless you manage it. This may or may not be necessary depending on how your app is using the cache.
Automatic cache management
The maximum cache size (regExpLIKE.cacheMax
) is initially undefined. You can set it at any time and it this new limit will be respected on the next call to regExpLIKE.cached()
:
regExpLIKE.cacheMax = 100;
Depending on your app, reasonable values might be 100, 400, 800, etc.
When the cache becomes full, the next new pattern to be cached causes the least-recently-used 10% of the patterns to be culled from the cache.
Manual cache management
To clear the cache entirely:
regExpLIKE.clearCache();
To delete a single previously inserted LIKE pattern
:
regExpLIKE.clearCache(pattern);
To get the current size of the cache:
var currentCacheSize = regExpLIKE.getCacheSize();
Demo
A trivial demo can be found here.
CDN versions
To use in a browser, you have two options:
- Incorporate the node module into your own browserified project.
- Use the browser-ready versions
regexp-like.js
orregexp-like.min.js
available on the Github pages CDN.
Submodules
See the note Regarding submodules for important information on cloning this repo or re-purposing its build template.