Package Exports
- fast-string-search
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fast-string-search) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Fast String Search
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.
Initialization
Import this module by using require function.
const fss = require('fast-string-search');Usage
indexOf
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.
indexOfSkip
Normal text search in a string.
var a = fss.indexOfSkip('coocoocoocoo', 'oocoo'); // [1, 7]lastIndexOf
Full text search from the end of a string.
var a = fss.lastIndexOf('coocoocoocoo', 'oocoo'); // [7, 4, 1]utf16IndexOf/utf16IndexOfSkip/utf16LastIndexOf
var a = fss.utf16IndexOf(Buffer.from('coocoocoocoo', 'utf16le'), Buffer.from('oocoo', 'utf16le')); // [1, 4, 7]Tests
To run the test suite, first install the dependencies, then run npm test:
npm install
npm testBenchmark
To run the benchmark suite, first install the dependencies, then run npm run benchmark:
npm install
npm run benchmarkHere 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