This module can search substrings in a string by using N-API and boyer-moore-magiclen. The result of benchmark shows that this module is 10 times faster than the indexOf
function of a Node.js string.
NOTICE: N-API is a new experimental feature in Node.js 8. Currently, it can be used by adding --napi-modules
option when executing Node.js 8.
Run npm i
or npm install
to install.
npm install fast-string-search
If you want to save this module to package.json, please add --save
option.
npm install fast-string-search --save
Import this module by using require
function.
const fss = require('fast-string-search');
Full text search in a string.
var a = fss.indexOf('coocoocoocoo', 'oocoo'); // [1, 4, 7]
You can also set the offset of characters and the number of substrings you want to find.
var a = fss.indexOf(source, pattern, offset, limit);
The default value of offset
is 0
, and the default value of limit
is 1000
.
Normal text search in a string.
var a = fss.indexOfSkip('coocoocoocoo', 'oocoo'); // [1, 7]
Full text search from the end of a string.
var a = fss.lastIndexOf('coocoocoocoo', 'oocoo'); // [7, 4, 1]
var a = fss.utf16IndexOf(Buffer.from('coocoocoocoo', 'utf16le'), Buffer.from('oocoo', 'utf16le')); // [1, 4, 7]
To run the test suite, first install the dependencies, then run npm test
:
npm install
npm test
To run the benchmark suite, first install the dependencies, then run npm run benchmark
:
npm install
npm run benchmark
Here is my result,
Full Text Search
- 87 milliseconds
✓ natively search text(indexOf) (87ms)
- 7 milliseconds
✓ Use FSS to search text
Normal Text Search
- 35 milliseconds
✓ natively search text(indexOf)
- 46 milliseconds
✓ natively search text(RegExp) (46ms)
- 6 milliseconds
✓ Use FSS to search text