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
Introduction
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.
Installation
Run npm i or npm install to install.
npm install fast-string-searchIf you want to save this module to package.json, please add --save option.
npm install fast-string-search --saveInitialization
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